2013-03-07 184 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對它。