我有一個帶有一些鏈接的網頁,我需要通過jQuery攔截鏈接單擊事件。任務完成的很好,但後來出現了一個問題:如果用戶點擊一個鏈接,當JavaScript沒有完成加載,它鏈接到另一個頁面(這是一個錯誤)。防止在頁面加載時點擊鏈接
我試圖找到一種方法來禁用頁面加載完成之前,鏈接點擊,但最好的解決辦法,現在是我必須補充onclick="return false;"
到我的鏈接,這是不是很優雅。有沒有更好的解決方案?
感謝您的幫助,
我有一個帶有一些鏈接的網頁,我需要通過jQuery攔截鏈接單擊事件。任務完成的很好,但後來出現了一個問題:如果用戶點擊一個鏈接,當JavaScript沒有完成加載,它鏈接到另一個頁面(這是一個錯誤)。防止在頁面加載時點擊鏈接
我試圖找到一種方法來禁用頁面加載完成之前,鏈接點擊,但最好的解決辦法,現在是我必須補充onclick="return false;"
到我的鏈接,這是不是很優雅。有沒有更好的解決方案?
感謝您的幫助,
這是我制定的一個解決方案:使用放置在鏈接前面的masker來防止點擊事件。
<div class="LinkMasker"></div>
.LinkMasker {
position: absolute;
z-index: 999;
width: ...px;
height: ...px;
}
頁面加載&我的活動結束後都註冊了,去掉掩蔽物:
$('.LinkMasker').remove();
我知道這是少數,但Javascript關閉的用戶無法以這種方式使用您的網站。 – kapa 2014-08-07 09:20:36
你可以嘗試使用的初始化腳本:
<script language="javascript">
var loaded = false;
function SetLoaded() { loaded = true; }
window.onload = SetLoaded;
</script>
那麼你可以添加到onclick="return loaded;"
您的href。由於在頁面加載之前加載將不成立,因此應該禁用添加了該功能的鏈接。
讓jQuery在你的document.ready()的鏈接中設置hrefs。也許用'#'加前綴你的鏈接,並讓jQuery去掉它們。
謝謝,雖然我不認爲這是好的做法:( – 2011-02-08 05:07:01
今天,所以我做了[R & d,並計算出它的另一種方式,我面臨着這個問題。 document.readyState將在頁面加載完成後「完成」,因此您可以檢查其值。
if(document.readyState=='complete')
{
//// call script or do anything which you want to do.
}
爲什麼不派HREF作爲另一個屬性,然後複製,當鏈路準備好被點擊屬性HREF? – jrockway 2011-02-08 03:32:02
@jrockway:感謝您的建議,但我認爲這樣做並不方便。 – 2011-02-08 04:53:10