情況是這樣的:阿賈克斯工作僅在第一次
在我笨的應用程序,是一種社交網絡演示的,正在開發的Like按鈕。
使用foreach循環讀取帖子時,每個帖子後都會顯示一個類似按鈕。 第一次正常工作:Ajax將數據發送到codeigniter方法,數據被插入到表格中,並且按鈕變爲綠色(成功)。 然後它停止工作。 即使我刷新頁面,呼叫也不會被觸發。
我試圖做:
見過的堆棧溢出和其他論壇中的所有其他的答案,但沒有一個固定的問題。 無論如何,codeigniter部分是正確的,問題出在我的Ajax調用。
爲簡化調試目的,現在我有一個非常簡單的Ajax功能,服務器端禁用,唯一需要做的就是在點擊按鈕時使它們變成綠色。 又一次它只能在第一時間,然後不工作了......
這是HTML:
<button id="button_like" type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-thumbs-up"></span> Like</button>
這Ajax調用:
$('#button_like').click(function(e) {
e.preventDefault();
// alert('click');
var data = {
user_id: '5', // for debug
post_id: '6', // for debug
ajax: '1'
};
$.ajax({
url: "<?php echo site_url('post/like'); ?>",
type: 'POST',
data: data,
success: function() {
$('#button_like').replaceWith('<button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-thumbs-up"></span></button>');
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
},
});
// return false;
});
這個問題:
我該怎麼做才能使一個簡單的Ajax調用的工作每次?
非常感謝!
編輯:你們所有的答案
感謝。 我已經做了button_like類而不是ID。
<button type="submit" class="btn btn-primary button_like"><span class="glyphicon glyphicon-thumbs-up"></span> Like</button>
然後調用這樣的功能:
$('.button_like').on('click', function(e) {
並以這種方式取得成功:
success: function() {
$('.button_like').replaceWith('<button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-thumbs-up"></span></button>');
},
但現在,點擊一個按鈕後,它使綠色ALL按鈕。 我如何才能使綠色只有一個我點擊? 謝謝!
編輯2:
我已經重新創建的情況在這個Jsbin:
http://jsbin.com/xulaxowa/1/edit
你用另一個按鈕替換按鈕,你期望什麼?該按鈕現在消失了,新按鈕沒有事件處理程序。 – adeneo
我覺得你應該改變按鈕類型提交按鈕,並編寫形式代碼 –
ID後,提出必須對JavaScript的唯一,嘗試通過 – radia