我試圖改變鏈接文本,當它被點擊並顯示一個DIV。用戶點擊修改後的鏈接(同一個鏈接)後,應該隱藏DIV。Javascript innerHTML調用onclick函數
它適用於顯示它,但由於某些原因,當我點擊「隱藏舊消息」時,DIV隱藏了半秒鐘,然後再次顯示。
它發生在哪裏,我改變了鏈接的文字默認的行(「查看舊的新聞......」)
<script>function showoldnews()
{
document.getElementById('oldnews').style.display = "block";
document.getElementById('oldnewslinkid').innerHTML = '<a href="#" id="oldnewslinkid" onclick="hideoldnews(); return false;">Hide older news</a>';
}
function hideoldnews()
{
document.getElementById('oldnewslinkid').innerHTML = '<a href="#" id="oldnewslinkid" onclick="showoldnews(); return false;">View older news...</a>'; //it calls showoldnews() function for some reason on this line
document.getElementById('oldnews').style.display = "none";
}
</script>
鏈接
<a href="#" id="oldnewslinkid" onclick="showoldnews(); return false;">View older news...</a>
你如何定義鏈接? – Ian
你能用你的標記和JS創建JSfiddle或者Codepen嗎?如果我們知道在js觸發之前DOM處於什麼狀態,那麼診斷事情會更容易。在相關說明中,我建議使用[事件偵聽器] https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener)而不是onClick事件。 –
您不想分配anchor元素的innerHTML,而是分配'outerHTML'。看看DOM檢查器,你最後得到嵌套鏈接... – Bergi