我有一個jQuery的彈出窗口附加到鏈接。如果頁面未被完全加載(即.js文件),當鏈接被點擊時,它將在瀏覽器窗口中打開而不是彈出。jQuery禁用鏈接,直到頁面加載
我正在考慮禁用/隱藏鏈接,直到頁面加載。
對於處理這個scenrio最好的做法是什麼,並且你有任何代碼示例?
我有一個jQuery的彈出窗口附加到鏈接。如果頁面未被完全加載(即.js文件),當鏈接被點擊時,它將在瀏覽器窗口中打開而不是彈出。jQuery禁用鏈接,直到頁面加載
我正在考慮禁用/隱藏鏈接,直到頁面加載。
對於處理這個scenrio最好的做法是什麼,並且你有任何代碼示例?
第一名您在DIV部分的鏈接,使該分區隱藏
<div style='display:none' id='LinkId'><a href=''>click</a></div>
現在寫在頭部分的代碼
<script language="javascript">
$(document).ready(function() {
$('#LinkId').show();
});
</script>
這應該完美。 如果您有時間並希望改善用戶體驗,而不是隱藏它,則可以將其設置爲禁用的元素(使用CSS),並在.ready事件中將其替換爲工作鏈接。真的很簡單,用jQuery。 – Nacho 2010-11-24 12:57:06
其實這是恕我直言,一個很好的例子,爲什麼在直接分配事件處理程序儘管有許多人說,HTML代碼並不一定是壞事。
如果您使用的是<a href="" onclick="myClickHandler()">Link</a>
,那麼鏈接的可見性和您可以使用它的時間之間將沒有差距。它提高了可用性,因爲用戶不需要等待頁面完全加載,並且在他看到它的那一刻仍然使用該鏈接。
我也有類似的問題,其中一個鏈接的href正在由服務器和在href填充頁面加載之前進行修改,以美國/ EN或/德/日的URL之前,
因此,如果我們點擊在頁面完全加載之前的鏈接上,它會轉到不完整的URL,因此我會找不到頁面。
因此,我採取的解決方案是: 儘快從客戶端添加onclick =「event.preventDefault()」,然後在url更新時將其修改爲onclick =「」。
所以這個問題得到解決,當網址不完整,然後點擊沒有發生。
我有同樣的問題,這裏是我如何解決它。
我不得不創建另外一個虛擬鏈接到我真正的鏈接即
<!--fake link is visible by default-->
<li class="li_1">
<a class="dropdown-toggle" href="my_real_link_not_popup.html">Compose</a>
</li>
<!--original link is hidden with the hidden class by default-->
<li class="li_2 hidden">
<a class="dropdown-toggle ajax-popup-link_write" id="write_main_a" href="my_real_link_is_popup.html">Compose</a>
</li>
我的劇本要這樣:
$(document).ready(function()
{
//prevent event from being fired before page load
$(".li_1").addClass("hidden");
$(".li_2").removeClass("hidden");
});
使頁面加載與假鏈接,onpage load == "finish"
然後虛假鏈接被隱藏,真正的鏈接變得可見。
唯一不利的一面是用戶必須始終在其瀏覽器中啓用Java腳本,否則他們將無法訪問彈出窗口。但請注意,虛假鏈接仍然可以重定向到與彈出窗口內容相同的另一頁面。 眼色
希望這有助於
我會建議使用像接受的回答我的問題:http://stackoverflow.com/questions/3461152/progressive-enhancement-and-initial-display-state – Sonny 2010-11-24 14:14:16