在每个页面上,我创建了自定义js对象。
我想订阅$()。ready事件,这样当它触发时,我的对象init函数也会触发。
这可能吗?
更新
我的对象如下:
var blah = function() {
var init = function() {
//init function stuff
};
return {
InitPage: function() { init(); }
};
}();
然后在我的页面上我会这样做:
blah.init();
答案 0 :(得分:9)
$(document).ready(function() {
YourObject.init();
});
答案 1 :(得分:2)
也许我误解了你的问题,但我认为你想要做的是把你的初始化代码放在这个块中:
$(document).ready(function() {
// your code here
});
当您将函数传递给jQuery ready()
函数时,它会使用所有以前的函数聚合新函数。换句话说,这将起作用:
$(document).ready(function() {
alert("a");
});
$(document).ready(function() {
alert("b");
});
您无需担心会覆盖之前的ready()
来电。
答案 2 :(得分:1)
查看jQuery live事件。
绑定“live”事件时,它将绑定到页面上的所有当前和未来元素(使用事件委派)。例如,如果您将实时点击绑定到页面上的所有“li”元素,然后在以后添加另一个li - 该单击事件将继续适用于新元素(这不是绑定的情况,必须重新绑定所有新元素)。
示例:
$("p").live("click", function(){
$(this).after("<p>Another paragraph!</p>");
});