在 jquery 中进行钩子切换

发布于 2024-11-27 18:02:18 字数 372 浏览 1 评论 0原文

我创建了一个包含以下代码的页面。我需要提醒一条消息。但这不起作用。为什么 ?

代码:

$(document).ready(function() {
     $.hook('toggle');
    $('#test').bind('onbeforetoggle', function(e){alert(e.type)});

    $('#btnHide').click(function() {
        $('#divTest').toggle();

    });

});

jsFiddle 演示

I created a page contains the following code. There I need to alert a message. But it does not work. WHY ?

Code:

$(document).ready(function() {
     $.hook('toggle');
    $('#test').bind('onbeforetoggle', function(e){alert(e.type)});

    $('#btnHide').click(function() {
        $('#divTest').toggle();

    });

});

jsFiddle demo

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赠佳期 2024-12-04 18:02:18

希望有帮助

http://jsfiddle.net/TzCXC/

  (function($){
    $.hook = function (fns) {
        fns = typeof fns === 'string' ? 
            fns.split(' ') : 
            $.makeArray(fns)
        ;

        jQuery.each( fns, function (i, method) {
            var old = $.fn[ method ];

            if ( old && !old.__hookold ) {

                $.fn[ method ] = function () {
                    this.triggerHandler('onbefore'+method);
                    this.triggerHandler('on'+method);
                    var ret = old.apply(this, arguments);
                    this.triggerHandler('onafter'+method);
                    return ret;
                };

                $.fn[ method ].__hookold = old;

            }
        }); 

    };

    $.unhook = function (fns) {
        fns = typeof fns === 'string' ? 
            fns.split(' ') : 
            $.makeArray(fns)
        ;

        jQuery.each( $.makeArray(fns), function (i, method) {
            var cur = $.fn[ method ];

            if ( cur && cur.__hookold ) {               
                $.fn[ method ] = cur.__hookold;         
            }
        });

    };
})(jQuery);

hope some helps

http://jsfiddle.net/TzCXC/

  (function($){
    $.hook = function (fns) {
        fns = typeof fns === 'string' ? 
            fns.split(' ') : 
            $.makeArray(fns)
        ;

        jQuery.each( fns, function (i, method) {
            var old = $.fn[ method ];

            if ( old && !old.__hookold ) {

                $.fn[ method ] = function () {
                    this.triggerHandler('onbefore'+method);
                    this.triggerHandler('on'+method);
                    var ret = old.apply(this, arguments);
                    this.triggerHandler('onafter'+method);
                    return ret;
                };

                $.fn[ method ].__hookold = old;

            }
        }); 

    };

    $.unhook = function (fns) {
        fns = typeof fns === 'string' ? 
            fns.split(' ') : 
            $.makeArray(fns)
        ;

        jQuery.each( $.makeArray(fns), function (i, method) {
            var cur = $.fn[ method ];

            if ( cur && cur.__hookold ) {               
                $.fn[ method ] = cur.__hookold;         
            }
        });

    };
})(jQuery);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文