2013-03-07 183 views
0

我创造我自己的方法在jQuery的有:呼叫自己的方法

$.fn.plop = function(){ 
    // Method 
}; 

而且我想它调用在队列中,如:

$(elems[0]).plop().delay(800).fadeOut(); 

但Firefox返回错误:

TypeError: $(...).plop(...) is undefined

任何想法是什么导致问题?谢谢。

+0

.plop()是否返回一个jQuery对象? – 2013-03-07 18:21:51

+0

感谢您的答案,在我的情况下,我只需要调用一个基本的JavaScript函数。因此,我在队列中使用“.animate({opacity:1},{step:function(){plop();}})”,并调用我的函数plop()。 再次感谢。 – user2087256 2013-03-08 09:25:56

回答

1

如果你想要它是可链接的,你需要在你的函数中返回jQuery。只要return $;如果没有别的。

例子:

$.fn.plop = function(){ 
    // Method 
    return this.html('bar'); // html() returns jQuery 
}; 

$('#myDiv').plop().delay(800).fadeOut(); 

http://jsfiddle.net/mUuhF/

0

为了扩展jQuery的正确,你需要写你的方法是这样的:

$.fn.plop = function() { 
    return this.each(function() { 

     // Do something for each element 

    }); 
}; 

这将允许您运行.plop()上任何jQuery元素集合,将行为或动作应用到每个元素,并且它将返回原始集合,以便您可以继续链接额外的方法ca对它。