2011-07-04 36 views
0

我目前得到這個jquery觸發我的選擇列表中的第一個單擊事件。如何轉換jQuery的一個('點擊')事件加載頁面加載後臺?

當有人第一次點擊選擇列表時,jQuery被觸發,並且需要幾秒鐘才能完成併爲用戶做好準備。

如何更改函數以便在頁面加載時(或一旦)加載後在後臺運行?我希望它在用戶點擊選擇/下拉菜單(#my_select)之前爲用戶做好準備。

$('#my_select').one('click',function(){ 
     var myList = $(this); 
     //myList.addClass("disabled"); 
     $('#my_select option').each(function(){ 
     var option = $(this); 
     option.attr("disabled","disabled"); 
      $.get('<?php echo get_bloginfo('template_directory') ?>/getStyle.php',{option: $(this).val()},function(response) 
      { 
       if (response=='true'){option.attr("disabled","");}else{option.addClass("disabled");} 
      }); 
     }); 
     //myList.attr("disabled",""); 
    }); 

回答

0
$(document).ready(function(){ 
var myList = $(this);myList.attr("disabled","disabled"); 
      $.get 
      (
       '<?php echo get_bloginfo('template_directory') ?>/getTemplates.php',function(response) 
       { 
        myList.attr("disabled",""); 
       } 
      ); 

}); 

使用$(文件)。就緒();在dom完全加載後執行腳本。

http://api.jquery.com/ready/

0

快速&骯髒的解決辦法作爲一種替代方案

$(document).ready(function() { 
    $('#my_select').trigger('click').unbind('click'); 
}); 

將觸發點擊事件#my_select一旦頁面加載,然後解除綁定的事件,因此不會發生時有人實際上'點擊'它。

正確的方法是將整個事件放在doc.ready中作爲獨立函數而不是事件。

+0

謝謝Trebor。我注意到,在加載任何東西之前,頁面似乎有點拖延。有沒有一種方法可以將操作延遲一點,以確保在頁面完全加載幾秒後才能繼續操作? –

+0

將$(document).ready更改爲$(window).load並查看是否有幫助。 – Treborbob