如何委托就绪功能

时间:2012-12-05 13:41:20

标签: javascript jquery

我知道jquery支持委托函数用于添加和删除函数自定义跟随事件。 EX

$("body").delegate("#p", "click", cfunc);

但是如何在加载页面时委派函数?

编辑------

我在我的问题中显示了更多详细信息的ex代码::)

我有一个功能自定义名称= cfunc() 现在我需要在页面加载时调用它来运行其中的许多事件。

在加载的时间页面上,查看者发布了一些事件(例如:调整大小,滚动...)我需要undelegate cfunc()并再次调用一些新的var。

---编辑2 -----

对不起大家,我会写更多代码:

这是我想委派的功能

function bbbb_scroll(pos)
    {
        $(document).scroll(function() {
            var _currentpos = $(window).scrollTop();

            if (_currentpos > pos) {
                console.log('match');
            }
        });
    }

现在我想在舞台准备时将其添加到页面

$(document).ready(function() {
        $(window).delegate("body", "resize", bbbb_scroll);
    });

毕竟,当用户resize浏览器窗口时,我需要undelegate bbbb_scroll函数并再次使用新的var(pos变量)

3 个答案:

答案 0 :(得分:1)

$(document).ready(function(){

    var position = 100;

    var scrollCallback = function(pos){

        var _currentpos = $(window).scrollTop();

        if (_currentpos > pos) {
            console.log('match');
        }
    };

    var resizeCallback = function(){

        $(document).unbind('scroll');

        $(document).on('scroll', function(){

            scrollCallback(position);

        });
    };

    $(window).on('resize', resizeCallback);

});

http://api.jquery.com/on/

http://api.jquery.com/ready/

答案 1 :(得分:0)

很明显这个

查看jQuery documentation

$(document).ready(function(){
    //- do your stuff    
});

答案 2 :(得分:0)

通过将函数(匿名或通过名称)传递给ready方法

,委托在文档加载时运行的函数

匿名方法:

$(document).ready(function(){
   ...
});

命名函数

function myReadyHandler(){..}

$(document).ready(myReadyHandler);