Jquery bind&准备活动?

时间:2012-03-15 03:18:38

标签: javascript jquery

在我的jquery代码中,每次重新加载/刷新页面时以及单击选择框时,我都会尝试 //执行操作。但是,当我添加ready函数时(如文档已准备就绪),但是应该在 //做事情内部,只能通过点击事件执行,但还没准备好。

我该如何解决这个问题?

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

4 个答案:

答案 0 :(得分:4)

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

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(从jQuery 1.7开始) - 这根本不会改变行为。

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

现在,如果您想要//Do things点击select元素,则可以:

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

});

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

});

这会将点击事件的处理程序绑定到 select元素的每个

查看jquery docs了解详情。

答案 3 :(得分:0)

你可以这样做:

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