为什么在编写方法插件时我们需要一个函数插件

时间:2012-07-24 09:30:22

标签: jquery

我是一个JQuery新手,当我阅读Jquery书时,我遇到了这个jquery插件示例代码。

//adding a function to JQuery object
jQuery.slowEach = function( array, interval, callback ) {
    if( ! array.length ) return;
    var i = 0;
    next();
    function next() {
        if( callback.call( array[i], i, array[i] ) !== false )
            if( ++i < array.length )
                setTimeout( next, interval );
    }
    return array;
};

//attaching a new method .slowEach()
jQuery.fn.slowEach = function( interval, callback ) {
    return jQuery.slowEach( this, interval, callback );
};

// Show an element every half second
$('.reveal').slowEach( 500, function() {
    $(this).show();
})

我只是想知道在编写这样的方法插件时是否有必要编写函数插件,这意味着什么?如果没有,我可以在没有函数插件的情况下在jQuery.fn.slowEach方法中编写整个内容吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

如果我没错,在jQuery.fn中编写函数/方法,你就可以在所有jQuery对象上使用它,因为.fn是{{1}的某种快捷方式。 jQuery的。您可以这样做,但您需要更改原始代码中的某些内容(例如,您需要使用prototype作为this变量)。通过这种方式,您将能够这样做:

array

将插件写入//select a DOM element and apply the plugin on it $('.reveal').slowEach( 500, function() { $(this).show(); }); 使其无需jQuery元素即可访问。这意味着您将能够执行以下操作:

jQuery.yourplugin