在jQuery中订阅$()。ready函数

时间:2009-02-16 21:15:20

标签: jquery

在每个页面上,我创建了自定义js对象。

我想订阅$()。ready事件,这样当它触发时,我的对象init函数也会触发。

这可能吗?

更新

我的对象如下:

var blah = function() {
    var init = function() {
     //init function stuff
    };
    return {
     InitPage: function() { init(); }
    };
 }();

然后在我的页面上我会这样做:

blah.init();

3 个答案:

答案 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>");
});