2010-12-08 43 views
1

例子:

<button>Test 1</button> 
<button>Test 2</button> 
<button>Test 3</button> 

所以是這樣的:

$('button').click(function(){ 
    $.post('a.php',{text:$(this).text()},function(data){ 
      if(data == 'doThis'){ 
      $(this)...(??button??)...css('color','#ff0000'); 
      }else{ 
      $(this)...(??button??)...css('color','#00ffff'); 
      } 
    }); 
}); 

因此,根據 「a.php只會」 的結果。該按鈕將有有些不同。 我不知道數字操作按鈕,這個想法是所有的功能之一.. 你會怎麼做呢?

+2

歡迎使用stackoverflow – 2010-12-08 01:09:39

回答

2

嘗試是這樣的(未經測試)

$('button').click(function(){ 
var btn = $(this); 
$.post('a.php',{text:$(this).text()},function(data){ 
     if(data == 'doThis'){ 
     btn.css('color','#ff0000'); 
     }else{ 
     btn.css('color','#00ffff'); 
     } 
    }); 
}); 

存放按鈕btn的實例,讓你即使執行click事件的$。員額的匿名函數中調用它,保持基準.post可以返回一個有效的。

1

創建一個臨時參考this保持關閉:

$('button').click(function(){ 
    var self = this; 
    $.post('a.php',{text:$(self).text()},function(data){ 
     $(self).css('color',(data == 'doThis') ? '#ff0000' : '#00ffff'); 
    }); 
}); 
+0

完美的人,謝謝 – user534312 2010-12-08 01:10:59

0

我想補充,另一種選擇是使用$.ajax,並且context選項設置爲this,使得點擊按鈕的上下文成功回撥:

$.ajax({ 
    url: "a.php", 
    type: "post", 
    data: {text:$(this).text()}, 
    context: this, 
    success: function(data) { 
     if(data == 'doThis'){ 
     $(this).css('color','#ff0000'); 
     }else{ 
     $(this).css('color','#00ffff'); 
     }  
    } 
});