我只是不理解jQuery中的$ .fn

时间:2009-12-14 22:02:11

标签: jquery

这种语法有什么问题?

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

我正在尝试学习如何扩展jQuery。

4 个答案:

答案 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