这种语法有什么问题?
<script>
jQuery(function() {
jQuery.fn.myfunction(myparam) {
alert(myparam);
return 0; // return jQuery?
}
myfunction('Hello World');
});
</script>
我正在尝试学习如何扩展jQuery。
答案 0 :(得分:5)
jQuery.fn.myfunction(myparam) {
应该是
jQuery.fn.myfunction = function(myparam) {
因为您要为对象myfunction
的属性jQuery.fn
分配值function () {...
答案 1 :(得分:4)
您的语法是尝试在myFunction
引用上调用名为jQuery.fn
的方法。
要扩展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>
答案 2 :(得分:3)
通过jQuery.myFunction定义的方法是一个“静态”函数。你通过执行$ .yourFunction来调用它,并且它不依赖于结果集。
相反,jQuery.fn.myFunction上定义的函数与结果集绑定;如果你在该函数中执行“this”,你将获得用于调用它的jQuery对象。换句话说,如果你做$(“P”)。myFunction()我的函数中的“this”将是$(“P”)。
答案 3 :(得分:1)
来自文档......
jQuery.fn.extend({
check: function() {
return this.each(function() { this.checked = true; });
},
uncheck: function() {
return this.each(function() { this.checked = false; });
}
});
查看更多here。