2016-08-03 160 views
0

我有一個頁面列出了兩個表中的項目數。我們會將它們稱爲「最近並保存」。這些表格列出了有關每個項目的一些數據,每行包含一個「刪除」鏈接。該鏈接返回到鏈接中的一些額外數據的同一頁面。頁面不刷新後href鏈接

鏈接工作得很好。問題是,大約一半的時間點擊鏈接時,頁面不會刷新。看起來什麼都沒有發生。如果手動刷新,則頁面會相應更新。

現在真正奇怪的是,Recent和Saved的代碼是相同的。然而,它似乎總是適用於保存,而我最近有這個問題。

HTML代碼:

<td><a class="confirmation" 
href="path/to/site/list.php?delete=yes&id=<? echo $data['id']; ?>" 
OnClick="return confirm('Are you sure?')">remove</a></td> 

JavaScript代碼:

var elements = document.getElementsByClassName('confirmation'); 
var confirmOne = function(e){ 
    if(!confirm("Are you sure?")) e.preventDefault(); 
}; 
for (var i = 0; i < elements.length; i++){ 
    elements[i].addEventListener('click', confirmIt); 
} 

任何想法,爲什麼有時刷新頁面,而不是其他人?

更新:代碼有幾個問題,我已經根據註釋修復了這些問題。不幸的是,這些問題並沒有引起我的主要問題,修復它們並沒有解決問題。

+0

Yu're調用錯誤的函數:元素[I]閱讀進度( '咔噠',__confirmIt__); var __confirmOne__ =函數(e) –

+0

您沒有稱爲confirmIt的函數。你有一個var名爲confirmOne – mplungjan

+0

每個鏈接都有一個onclick屬性,你正在通過javascript添加另一個事件監聽器? – Will

回答

0

雖然有些用戶指出我的代碼有一些缺陷和錯誤,但他們都沒有能夠解決我所問的實際問題。我從來沒有發現如何解決這個問題,或者是什麼原因。

最後,我剛剛結束了使用AJAX來重新加載內容。無論如何,這是更好的解決方案。它看起來現在好多了,而且沒有更新。新的代碼看起來是這樣的:

HTML:

的JavaScript:

function deleteOne(id){ 
    if(confirm("Are you sure?")){ 
     var selector = "#" + id; 
     $.get(
      "path/to/site/list.php", 
      {delete: "yes", id: id}, 
      function(){ 
       $("#my-content").load(location.href+" #my-content>*",""); 
      } 
     ); 
    } 
}