2011-09-20 34 views
1

這似乎應該是簡單,但我無法得到它的工作。JQuery的,如何AJAX調用後訪問點擊對象?

我有。點擊綁定到某一類的許多按鈕。點擊該按鈕後,它會將其ID傳遞給$ .post調用進行處理。

當.post的$調用成功返回,我想刪除按鈕,添加一個消息到容器,但我似乎不能在這一點上,即使訪問按鈕。

這裏是。點擊綁定:

$('.button').click(function() { 
    $.post('process.php', { 
     action: 'checkit' 
    }, 
    function(result) { 
     if (result == 'win') { 
      // Access the button that was pressed with jQuery 
     } 
     else { 
      alert("fail"); 
     } 
    }); 
}); 

我試過,$(本),這一點,也設置類似VAR觸發變量=這是我進入初始點擊功能,但沒有這些工作。我得到未定義,或者它指向實際的JQuery對象,而不是按鈕。

沒有人有任何深入瞭解如何訪問被點擊在這一點上的按鈕,使用jQuery的包裝,本質上類似$(觸發按鈕)的.html()這樣我就可以操縱正確的按鈕?

謝謝你的時間。

回答

2

試試這個

$('.button').click(function() { 
    var $button = $(this); 
    $.post('process.php', { 
     action: 'checkit' 
    }, 
    function(result) { 
     if (result == 'win') { 
      $button.doStuff(); 
     } 
     else { 
      alert("fail"); 
     } 
    }); 
}); 
+0

哇,我發誓我試過了。也許我搞砸了它是如何輸入的,或者錯誤地使用「this」而不是$(this)某處。以爲我嘗試過所有的組合後失敗的工作。 感謝大家的評論。 – edeneye

4
$('.button').click(function() { 
    var clicked = $(this); 
    .... 

使用本地變量進行臨時存儲。

+0

+1 - 回調裏面,你會再使用'clicked.remove()'。 – Tejs

+0

+1 - 也會推薦var name爲'$ clicked',這樣你就知道它是一個jQuery對象。 – jondavidjohn

+0

@johndavidjohn:有趣的建議,但讓我想起了太多的PHP:D –

0

這是很容易做到:

$(this).foo('bar'); 
0

$('.button').click(function() { 
    $.post('process.php', { 
     action: 'checkit' 
    }, 
    function(result) { 
     if (result == 'win') { 
      $(this).html('something'); 
     } 
     else { 
      alert("fail"); 
     } 
    }.bind(this)); 
}); 

工作?

0

您正在嘗試什麼jsfiddle example。點擊文字。只保留一個局部變量。