爲了理解JavaScript的最佳實踐,我試圖通過從外部JavaScript文件添加事件偵聽器來重新創建一段內聯JavaScript。Javascript:使用eventListener重新加載頁面點擊
內嵌代碼工作正常,看起來像這樣:
<p id="inline" align="left">
This is a body paragraph which changes alignment
when a user clicks on a link below
</p>
<p>
<a href="" onclick="document.getElementById('inline').setAttribute('align', 'right'); return false;">Align Right</a>
</p>
關於我的問題,這裏要注意的重要的事情是return false;
防止頁面從重裝(我沒有真正知道爲什麼,和止跌不介意發現,特別是如果它涉及到我的問題的解決方案...)。這就是我要的。我不需要重新加載頁面以將文本移到右側。
但是,我不知道什麼是保持頁面重新加載的最佳方式是當我的JavaScript在外部文件中。這是我第一次嘗試的樣子。我開始與HTML,看起來像這樣:
<p id="external" align="left">
This is a body paragraph which changes alignment
when a user clicks on a link below. It uses an
external .js file.
</p>
<p>
<a href="" id="aRight">Align Right</a>
</p>
和JavaScript看起來像這樣:
function alignListener() {
document.getElementById('external').setAttribute('align', 'right');
}
function installListeners() {
var aRight = document.getElementById('aRight');
aright.addEventListener('click', alignListener, false);
}
這幾乎作品,但不是在所有我怎麼會想到。當我點擊'右對齊'鏈接時,文本短暫地對齊,但是,然後,我按照指向當前頁面的鏈接,將對齊重置回左側。
我找到了一種方法來解決這個問題,通過使用<a href="#" ...
而不是<a href="" ...
。雖然這不會重新加載頁面(所以文本保持對齊),但它確實將我帶到了頂端,這並不是我想要的。我想要一個類似於return false;
的解決方案,它可以與內嵌JavaScript一起工作。有沒有簡單的方法來做到這一點?或者我完全錯了嗎?
+1,非常豐富 – JCOC611 2011-01-28 01:54:25