如何将jQuery one('click')事件转换为在页面加载的后台加载?

时间:2011-07-04 13:18:00

标签: 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","");
    });

2 个答案:

答案 0 :(得分: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","");
                }
            );

});

使用$(document).ready();在dom完全加载后执行脚本。

请参阅http://api.jquery.com/ready/

答案 1 :(得分:0)

快速&amp;脏的解决方法作为替代解决方案

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

一旦页面加载,它将触发#my_select的click事件,然后取消绑定事件,这样当有人实际“点击”它时就不会发生这种情况。

正确的方法是将整个文档作为独立函数而不是事件放在doc.ready中。