编写一个接受params和object的jquery函数

时间:2010-12-09 18:28:46

标签: javascript jquery function

这应该很容易。

如何编写一个获取'调用'对象和一些参数的jquery函数。

我的功能代码:

new function($) {
  $.fn.addcolor = function(param1, param2, param3, param4) {
    // here i would like to retrieve the 'caller' object (div.foo in this case)

  }
} (jQuery);

我的代码'调用'函数:

$('div.foo').click(function() {
  $(this).addcolor(1, 2, 3, 4);
});

我可以得到params没有问题,但我想在函数中获取div.foo的内容并添加一些内容。

5 个答案:

答案 0 :(得分:2)

您正在寻找this

<{1}}中的jQuery插件是$.fn原型上的常规方法。 (jQuery将$分配给$.fn
与任何其他方法一样,您可以使用$.prototype获取调用它的上下文。

答案 1 :(得分:2)

addcolor插件中,this将代表调用插件的jQuery对象。

 // v---jQuery object
$(this).addcolor(1, 2, 3, 4);

(function($) {
  $.fn.addcolor = function(param1, param2, param3, param4) {
    // here "this" is the same object
    // this[ 0 ] to get the first DOM element
    // this.each(function(...   to iterate over the collection
  }
})(jQuery);

答案 2 :(得分:2)

在jQuery插件函数中,该元素由此引用。

function($) {
  $.fn.addcolor = function(param1, param2, param3, param4) {
    // here i would like to retrieve the 'caller' object (div.foo in this case)
    var divcontent = $(this).html();
  }
} (jQuery);

答案 3 :(得分:1)

这就是一种方式......

还有一个可以调用的参数对象。即:arguments.length或arguments [“parm”]

答案 4 :(得分:0)

扩展我使用的jQuery:

(function($) {
    $.fn.extend({
        addcolor: function(param1, param2, param3, param4) {
            return this.empty().append(something);
        }
    });
})(jQuery);