0

JQuery では、 $(this) はローカルでしか機能しないようです。

簡単な例を挙げる:

$(".someClass .type1").click(function(){
    $(".someClass .type1").html("<img src='image/2.png'>");
    $(this).html("<img src='images/img.png'>");
});

$(".otherClasses").click(function(){
    $(".otherClasses .type1").html("<img src='image/2.png'>");
    $(this).html("<img src='images/img.png'>");
});

理想的には、次のような関数を書きたいと思います。

function changeImg () {
   $(this).html("<img src='images/img.png'>");
}

そして、次のような jquery クリック関数の下で changeImg() を呼び出します。

$(".someClass .type1").click(function(){
        $(".someClass .type1").html("<img src='image/2.png'>");
        changeImg();
});

ただし、この方法では、$(this) はクリックされたものではなく「未定義」になります。グローバル変数のように利用できるようにする方法はありますか?

ありがとうございました!

4

3 に答える 3

3

コンテキストを設定するには、次のようにします。

changeImg.call(this);

MDN を参照してくださいFunction.prototype.call

于 2013-10-01T14:10:13.727 に答える