2014-02-27 31 views
0

HTML是按鈕列表,用於切換關閉的元素。JQuery - 使用on()切換另一個對象時更改按鈕的文本

我想改變按鈕上的文字,從「顯示」到「隱藏」。我希望它可以通過回調complete()來完成。我如何訪問被點擊的元素?

我有這樣的JS-代碼:

$("body").on("click", ".selector", function(eve) { 
    $(".selector", $(this).parent()).toggle(function(){ 
     $(/*here comes the element that was clicked*/).text(
      function(i,text){ 
       return text == "show" ? "hide" : "show"; 
      } 
     ); 
    }); 
    }); 

回答

3

商店參考,this

$("body").on("click", ".selector", function(eve) { 
var that = $(this); 
$(".selector", $(this).parent()).toggle(function(){ 
    that.text(
     function(i,text){ 
      return text == "show" ? "hide" : "show"; 
     } 
    ); 
}); 
}); 
+0

這是正確的,壽我有另一個問題,因爲我錯誤地使用了'text()'而不是th e'val()'函數。謝謝 – yossi

0

可以使用eventevent.currentTarget財產

$("body").on("click", ".selector", function (eve) { 
    $(this).parent().find(".selector").toggle(function() { 
     $(eve.currentTarget).text(function (i, text) { 
      return text == "show" ? "hide" : "show"; 
     }); 
    }); 
});