鏈接的基礎(chǔ)概念
在網(wǎng)頁上,我們可以通過鏈接輕松地訪問到其他頁面。一個網(wǎng)站通常由許多頁面組成,這些頁面通過超鏈接相互連接,使得我們可以更加方便地瀏覽網(wǎng)站上的信息。超鏈接是一種 HTML 語言標簽,使用超鏈接的標簽是 <a> 標簽。<a> 標簽的 href 屬性定義了鏈接要前往的 URL,例如:
<a >百度一下</a>
這種方式的超鏈接通常會打開一個新的頁面,如果希望在當前頁面中打開鏈接,可以在 <a> 標簽中添加一個 target="_self" 屬性:
<a target="_self">百度一下</a>
鏈接的方式有很多,比如將鏈接作為按鈕形式展現(xiàn):
<button onclick="window.location.>百度一下</button>
或者直接通過函數(shù)來實現(xiàn)鏈接操作:
<a href="javascript:linkFunction()">百度一下</a> <script> function linkFunction(){ window.location.; } </script>
JavaScript 鏈接觸發(fā)
通過鏈接觸發(fā),可以在不加載新頁面的同時,改變當前頁面的內(nèi)容,從而實現(xiàn)改變頁面顯示效果的目的。
JavaScript 鏈接觸發(fā)的方式有很多,其中最簡單的就是通過 onClick 事件來觸發(fā) JavaScript 代碼塊:
<a href="#" onclick="alert('Hello World!')">點擊觸發(fā) JavaScript 代碼塊</a>
通過點擊上面的鏈接,會出現(xiàn)一個彈出框,提示“Hello World!”。這是通過 JavaScript 代碼塊來觸發(fā)的。
還可以觸發(fā)一個函數(shù),并傳遞參數(shù),如下所示:
<a href="#" onclick="showMessage('Hi there!')">點擊觸發(fā)函數(shù)</a> <script> function showMessage(message){ alert(message); } </script>
當點擊鏈接時,會調(diào)用 showMessage 函數(shù),并傳遞參數(shù)“Hi there!”,然后彈出一個提示框。
使用事件代理實現(xiàn)鏈接觸發(fā)
另一種實現(xiàn) JavaScript 鏈接觸發(fā)的方式是使用事件代理。事件代理是一種常用的開發(fā)技術(shù),它可以將相同的事件處理程序附加到多個元素上,從而減少代碼的重復(fù)性和維護難度。
事件代理有兩部分:一個是委托元素,另一個是觸發(fā)元素。
觸發(fā)元素只是鏈接或按鈕等 HTML 元素,它們本身不需要事件處理程序。與它們關(guān)聯(lián)的事件處理程序應(yīng)該在委托元素上注冊,這里使用的事件是 click 事件:
<ul id="nav"> <li><a href="#">首頁</a></li> <li><a href="#">關(guān)于我們</a></li> <li><a href="#">聯(lián)系我們</a></li> </ul> <script> document.getElementById("nav").addEventListener("click", function(event){ if(event.target.nodeName === "A"){ alert("你點擊了鏈接:" + event.target.innerHTML); } }); </script>
上面的代碼實現(xiàn)了在單擊<ul>元素內(nèi)的任何鏈接時觸發(fā)事件處理程序。使用事件代理時,十分重要的一點是要檢查事件的目標元素是否正確,這里需要判斷是否是鏈接元素。
小結(jié)
JavaScript 鏈接觸發(fā)使得我們在不加載新頁面的同時,能夠改變當前頁面的內(nèi)容,從而實現(xiàn)改變頁面顯示效果的目的。常見的實現(xiàn)方式包括:通過 onClick 事件觸發(fā) JavaScript 代碼塊來實現(xiàn);使用事件代理,將相同的事件處理程序附加到多個元素上,從而減少代碼的重復(fù)性和維護難度。
無論使用哪種方式,最終目的都是提供一個人性化的網(wǎng)站,為讀者提供方便、快捷、直接的閱讀體驗。