2009-12-14 73 views
0

這個語法有什麼問題?

<script> 
jQuery(function() { 
    jQuery.fn.myfunction(myparam) { 
     alert(myparam); 
     return 0; // return jQuery? 
    } 
    myfunction('Hello World'); 
}); 
</script> 

我想了解如何擴展jQuery。

回答

4

您的語法試圖在jQuery.fn引用上調用稱爲myFunction的方法。

要擴展jQuery對象,你要想這句法:

<script> 
jQuery(function() { 
    jQuery.fn.myfunction = function(myparam) { 
     alert(myparam); 
     return this; // returns the current jQuery object. 
    } 

    // Select something with jQuery using the $() function here. 
    $().myfunction('Hello World'); 
}); 
</script> 
+0

你是我的英雄。 – 2009-12-14 22:21:55

1

從文檔...

jQuery.fn.extend({ 
    check: function() { 
    return this.each(function() { this.checked = true; }); 
    }, 
    uncheck: function() { 
    return this.each(function() { this.checked = false; }); 
    } 
}); 

查看更多here

+0

Chalkey:我來向你尋求幫助,因爲我不明白jQuery的文檔。 – 2009-12-14 22:06:27

+0

你想要的是給jQuery.fn。[you_function]一個函數...這樣jQuery.fn.example = function(){document.write('example');返回這個; } ...返回這將允許你鏈接jQuery對象。你可能看過像$('#div#')。hide()。show('slow'); etc. – 2009-12-14 22:44:09

+0

我一直在尋找確切的語法,因爲它似乎可以在jQuery中做任何你想做的事情 - 你需要的只是一對波浪線,花括號,大括號和括號以及bam!你有它。 – 2009-12-14 23:03:34

5
jQuery.fn.myfunction(myparam) { 

應該是

jQuery.fn.myfunction = function(myparam) { 

作爲要分配對象jQuery.fnfunction() {...

+0

+1,這是正確的 – Jason 2009-12-14 22:16:25

3

一個值經由jQuery.myFunction限定的方法,是一個 「靜態」 函數的性質myfunction。您可以通過執行$。你的函數來調用它,而不是綁定到結果集。

相反,jQuery.fn.myFunction上定義的函數綁定到結果集上;如果你在這個函數中做了「this」,你會得到用來調用它的jQuery對象。換句話說,如果你做$(「P」)。myFunction()「this」在我的函數中將是$(「P」)。