如何在jQuery中的'子函数'中使用$(this)?

时间:2012-05-22 13:53:47

标签: jquery function

此函数调用

$('#mydiv').paintRed();

如果您使用此代码,则绘制ID为 mydiv 红色的DOM元素的背景:

$.fn.paintRed = function() {
    $(this).css("background-color", "red");
}

好吧,好的。但现在我想“组织”我自己的功能。现在我希望程序员使用这个函数调用来实现与上面相同的功能:

$('#mydiv').subsub.paintRed();

我如何实现这一目标?

(或者,如果上述请求不可能,还有其他办法吗?)

2 个答案:

答案 0 :(得分:2)

    $.fn.subsub= function() {
       var that = this;
        return {
            "paintRed" : function(){
                $(that).css("background-color", "red");
            },
            "yourOwnFunction1" : function(){
                 //code here
             },
            "yourOwnFunction2" : function(){
                 //code here
             }
        };
    }
    $("#mydiv").subsub().paintRed();
//  $("#mydiv").subsub().yourOwnFunction1();

返回一个paintRed作为其属性的对象。通过使用此方法,您的所有功能都可以“分组”到subsub函数中。

<强> Fiddle

答案 1 :(得分:0)

您可以使用jquery扩展函数

$.fn.someFunctionName = function(){
// do something
}

检查DEMO此处