initializing jquery makes page load very slow

I have an html document which has a 1 column table holding  jquery datepicker(see attached code).

When I simply attach the datepicker using:

               //code lines 31 onwards
            $('.date-pick').each(function(){
                $(this).datepicker();
            });

the table loads quikcky, but when I extend the datepicker functionality as follows:

            $('.date-pick').each(function(){
                $(this).datepicker();
                  $(this).datepicker('option', {dateFormat: 'dd/mm/yy'});
                  $(this).datepicker('option', {autoSize: true });
                  $(this).datepicker('option', {showButtonPanel: true });
                  $(this).datepicker('option', {onClose: function(dateText, inst) {
                              //close handler
                              //checkAndUpdateDate(dateText, inst);
                        }
                  });
                  $(this).datepicker('option', {onBlur: function(dateText, inst) {
                              //blur handler
                              //checkAndUpdateDate(dateText, inst);
                        }
                  });
            });
the page takes a long time to load and if too many rows are used, thepage script freezes.

How can I customize the behaviour of the datepicker without causing a delay?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<link type="text/css" href="css/sunny/jquery-ui-1.8.4.custom.css" rel="stylesheet" />	
<script type="text/javascript" src="assets/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="assets/jquery-ui-1.8.4.custom.min.js"></script>


<script type="text/javascript">
	$(document).ready(function(){
		var tbody = document.getElementById('tbod');
							   
		for (var i = 0; i < 150; i++){
			var tr = document.createElement('tr');
			tbody.appendChild(tr);
			
			var tdDate = document.createElement('td');
			var tdInput = document.createElement('input');
			tdInput.setAttribute("id", 'dpicker' + i);
			tdInput.className = 'date-pick';

			tdDate.appendChild(tdInput);
			tr.appendChild(tdDate);
			
		}
		$('.date-pick').each(function(){
		    $(this).datepicker();
			$(this).datepicker('option', {dateFormat: 'dd/mm/yy'});
			$(this).datepicker('option', {buttonText: 'Velg dato'});
			$(this).datepicker('option', {autoSize: true });
			$(this).datepicker('option', {showButtonPanel: true });
			$(this).datepicker($.datepicker.regional['no']);
			$(this).datepicker('option', {onClose: function(dateText, inst) {
					checkAndUpdateDate(dateText, inst);
				}
			});
			$(this).datepicker('option', {onBlur: function(dateText, inst) {
					checkAndUpdateDate(dateText, inst);
				}
			});

		});

//		$('.date-pick').datePicker({clickInput:true})
					   
	});
</script>

</head>

<body>

	<table class="tab" width="100" border="1">
  	 	<thead>
    		<tr>
        		<th id="head-date" class="date" scope="col">Date</th>
      		</tr>
    	</thead>

		<col width="100px" />
    
	    <tbody id="tbod">
    	</tbody>
	</table>


</body>
</html>

Open in new window

Viking46Asked:
Who is Participating?
 
HainKurtConnect With a Mentor Sr. System AnalystCommented:
0
 
crisco96Commented:
What browser are you using? IE 6 is particularly slow when doing anything with javascript, try loading the "slow" page in the latest version of firefox or chrome and see if it's any faster.
0
 
Viking46Author Commented:
Thank you Crisco 96, I am using FF and it wasn't a browser issue.

Thank you HainKurt, setDefaults is what I was looking for.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.