2012-02-24 100 views
0

我有下面的代碼發送單選按鈕的人通過ajax點擊的值。但它只適用於我給出的第一套選項。用戶按下一個鏈接後,所有的選項都改變了,並且新的一個通過ajax進入。但是,在這個選擇器不工作。jquery選擇器不工作通過ajax加載的內容

$(".options input").click(function(){ 
var ans = $(this).val(); 

$.post("sessions", { action: "set_answer", answer: ans, question: qid }, 
function(data) { 
alert("Data Loaded: " + data); 
}); 


}); 

什麼是可能的解決方案?以下是選項的方法。

<div class="options"> 
<input id="1"type="radio" name="answer" value="Two" />Two<br/> 
<input id="2"type="radio" name="answer" value="One" />One<br/> 
<input id="3"type="radio" name="answer" value="Four" />Four<br/> 
<input id="4"type="radio" name="answer" value="Five" />Five<br/> 
<input id="5"type="radio" name="answer" value="Six" />Six<br/>  
</div> 
+1

請後更喜歡什麼下一個環節的細節以及如何在optiosn改變 – digitebs 2012-02-24 06:06:17

回答

2

如果最新的jQuery,

 

$('.options input').on('click', function(event) { 
.... 
 

或者你可以嘗試這樣做:

 

$(".options input").live("click", function(){ 
.... 
 

希望它可以幫助

1

選擇器不工作,因爲你是元素試圖訪問不存在你創建它們的點。

要做到這一點,你應該使用Jquery On事件處理程序。這將在整個文檔中選擇元素,即使您稍後在程序中創建它們,就像在Ajax中一樣。

使用(未經測試):

$(".options input").on("click", function(event){ 
    var ans = $(this).val(); 

    $.post("sessions", { action: "set_answer", answer: ans, question: qid }, 
    function(data) { 
    alert("Data Loaded: " + data); 
    }); 

}); 
5

如果jQuery的1.7 +,試試這個:

$(document).on('click', '.options', function(){ 
    if ($(e.target).is('input')) { 
     var ans = $(this).val(); 

     $.post("sessions", { action: "set_answer", answer: ans, question: qid }, function(data) { 
     alert("Data Loaded: " + data); 
     }); 
    } 
}); 
相關問題