在jQuery插件中使用超时,同时仍然保持可链接性

时间:2012-10-15 17:05:26

标签: jquery jquery-plugins

我正在尝试创建一个内部具有超时功能的jQuery插件。这是我现在拥有的基本想法。它工作正常,但不保持可链接性。

;(function( $ ) {
    $.fn.myPlugin = function(length) {
        th = $(this);
        th.css('animation', 'none');
        setTimeout((function(th) {
            return function() { 
                th.css('display', 'block');
            };
        })(this), length);
    };
})( jQuery );

为了尝试使其可链接,我创建了它,但它没有在TimeOut函数中运行代码。

;(function( $ ) {
    $.fn.myPlugin = function(length) {
        return this.each(function() {
            th = $(this);
            th.css('animation', 'none');
            setTimeout((function(th) {
                return function() { 
                    th.css('display', 'block');
                };
            }),(this), length);
        });
    };
})( jQuery );

以下是没有链接的插件:http://jsfiddle.net/FhARs/1/

1 个答案:

答案 0 :(得分:1)

这个是有效的,这是你想要的吗?

;(function( $ ) {
    $.fn.myPlugin = function(length) {
        return this.each(function() {
            th = $(this);
            th.css('display', 'none');
            setTimeout(function() {
                th.css('display', 'block');
            }, length);
        });
    };
})( jQuery );

DEMO