在我的jquery代码中,每次重新加载/刷新页面时以及单击选择框时,我都会尝试 //执行操作。但是,当我添加ready函数时(如文档已准备就绪),但是应该在 //做事情内部,只能通过点击事件执行,但还没准备好。
我该如何解决这个问题?
jQuery(document).ready(function(){
jQuery("select").bind("change ready", function(){
//Do things
});
答案 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
});
});