2011-07-04 35 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