2016-02-10 86 views
0

使用投票/投票系統,用戶可以在投票前單擊以查看結果,然後再次單擊以再次查看選項。無法與使用jquery的jquery加載按鈕進行交互

的問題是在結果加載時,該按鈕我加載再次顯示選項會似乎沒有工作:

對他們的代碼基本上是相同的(我已經把警報測試如果有人甚至拿起按鈕,它不是):

$('.results_button').click(function() { 
    var poll_id = $(this).data('poll-id'); 
    $('.poll_content').load('/includes/ajax/poll_results.php', {'poll_id':poll_id}); 
}); 

$('.back_vote_button').click(function() { 
    window.alert("Test"); 
    //var poll_id = $(this).data('poll-id'); 
    //$('.poll_content').load('/includes/ajax/poll_options.php', {'poll_id':poll_id}); 
}); 

的實際代碼的back_vote_button是這樣的,例如:

<button name="pollresults" class="back_vote_button" data-poll-id="1">Back to voting</button> 

有什麼我失蹤安博與jquery加載的內容進行交互?

+0

是的,完全正確,歡呼! – NaughtySquid

回答

2

您的按鈕是在文檔加載後創建的嗎?如果在創建文檔時不存在,則偵聽器未綁定。您可以綁定一個監聽事件也可以更改點擊收聽已創建的對象,一個壞榜樣試試這個:

$(document).on('click', '.back_vote_button', function(){ 
    window.alert("Test"); 
}); 

這應該工作,但它會聽你點擊了身體的每一個時間和然後確定你點擊了什麼,如果這是問題。

+0

這是行得通的,但是如果你說這是一個糟糕的例子,那麼幹淨的方法是什麼? – NaughtySquid

+0

我會建議縮小搜索範圍,document.on click會在每次單擊窗口時觸發,如果將其縮小到按鈕所在的位置,則說「$('#voteButtonContainer')。on('click',' .back_vote_b ...「它只會在點擊'voteButtonContainer'的區域時纔會進行監聽,所以只需在容器或區域中偵聽,您就知道按鈕將存在。 – TylerT