考慮下面的代碼:禁用錨/ Safari瀏覽器
$("a").attr("disabled", "disabled");
在IE和FF,這將使錨無法點擊,但在基於WebKit的瀏覽器(谷歌Chrome和Safari)這個什麼也不做。關於disabled屬性的好處在於它很容易被刪除,並且不會影響href和onclick屬性。
你有關於如何得到期望的結果的任何建議。答案必須是:
- 很容易恢復,因爲我想在運行AJAX調用時禁用表單輸入控件。
- 必須在IE,FF,和WebKit
考慮下面的代碼:禁用錨/ Safari瀏覽器
$("a").attr("disabled", "disabled");
在IE和FF,這將使錨無法點擊,但在基於WebKit的瀏覽器(谷歌Chrome和Safari)這個什麼也不做。關於disabled屬性的好處在於它很容易被刪除,並且不會影響href和onclick屬性。
你有關於如何得到期望的結果的任何建議。答案必須是:
工作,我假設你已經綁定到這些錨元素的onclick事件處理程序。只需讓您的事件處理程序檢查「已禁用」屬性,並在已設置的情況下取消該事件。您的事件處理程序看起來像這樣:
$("a").click(function(event){
if (this.disabled) {
event.preventDefault();
} else {
// make your AJAX call or whatever else you want
}
});
您還可以設置樣式表規則來更改光標。
a[disabled=disabled] { cursor: wait; }
編輯 - 按照評論中的建議簡化了「禁用」檢查。
我不得不修正了網站上的這個行爲有很多錨,正在啓用了根據其他條件這個屬性/殘疾人等也許並不理想,但在那樣的情況下,如果你不喜歡單獨解決每個錨的代碼,這樣就可以了所有的主播:
$('a').each(function() {
$(this).click(function (e) {
if ($(this).attr('disabled')) {
e.preventDefault();
e.stopImmediatePropagation();
}
});
var events = $._data ? $._data(this, 'events') : $(this).data('events');
events.click.splice(0, 0, events.click.pop());
});
和:
a[disabled] {
color: gray;
text-decoration: none;
}
功能diableForms(){ $( 「輸入按鈕,文本區域,一」)。 attr(「disabled」,「disabled」)。css(「cursor」,「wait」); (「input」,「button」,textarea,a「)。not(」。disabled「)。removeAttr(」disabled「)。css(」cursor「,」「); } – 2008-10-06 18:22:47
我剛剛粘貼我使用的是disableForms和enableForms功能。感謝您的建議。 – 2008-10-06 18:24:30