Jquery绑定&就绪事件

Jquery bind & ready event?

本文关键字:就绪 事件 amp 绑定 Jquery      更新时间:2023-09-26

在我的jquery代码中,每次重新加载/刷新页面以及单击选择框时,我都会尝试//做一些事情。但是,当我添加ready函数时(如文档中所示,它已经准备好了),但本应进入//Do things内部的内容只会通过单击事件执行,但不会准备好。

我该怎么解决这个问题?

jQuery(document).ready(function(){
      jQuery("select").bind("change ready", function(){
         //Do things
      });

您可以简单地将代码提取到另一个函数中,并在页面加载和更改时调用它:

jQuery(document).ready(function(){
    var func = function() {
        // do things
    };
    // this does things whenever the <select> changes
    jQuery("select").on("change", func);
    // this does things once, when the page loads
    func();
});

我还将bind改为推荐的on(从jQuery1.7开始)——这根本不会改变行为。

我想你正在jQuery中寻找.trigger方法,你想触发绑定事件中的函数:

jQuery(document).ready(function(){
    jQuery("select").bind("change", function(){
        //Do things
    }).trigger("change");
});

document.ready()函数等待,直到加载整个文档并构建dom树。这就是为什么将代码封装在document.ready()中是个好主意。如果您没有这样做,那么您的调用jQuery("select")可能找不到任何元素,因为还没有domtree。

现在,如果你想在点击select元素时//Do things,你可以:

jQuery("select").click(function(){
});

jQuery("select").on("click", function(){
});

这将click事件的处理程序绑定到每个select元素。

查看jquery文档了解更多信息。

您可以这样做:

$(function(){
    $(":checkbox").click(function(){
        // do your anything
    });
});