[英]Disable (and re-enable) the href and onclick on elements
我只想在元素(a或div)上啟用/禁用onclick和href。
我不知道該怎么做。
我可以通過在click事件上添加處理程序來禁用onclick,但href仍然可用。
$(this).unbind().click(function(event){
event.preventDefault();
return;
});
編輯找到了一個元素
if ($(this).attr("href")) {
$(this).attr("x-href", $(this).attr("href"));
$(this).removeAttr("href");
}
如果在onclick事件上返回false
,則會忽略href
。
這將轉到Goole: <a href="http://www.google.com" onclick="alert('Go to Google')">Test</a>
這不會發給Google: <a href="http://www.google.com" onclick="alert('Go to Google'); return false;">Test</a>
好吧,我找到了一個解決方法:在主div上放置一個疊加層,其中包含我想要禁用的所有元素..它只是有效。
您可以嘗試以下方法:
$('a, div').click(
function(e){
return false;
// cancels default action *and* stops propagation
// or e.preventDefault;
// cancels default action without stopping propagation
});
preventDefault
MDC文檔 , event.preventDefault
jQuery文檔 。
所以問題:JavaScript event.preventDefault
vs return false
。
由於click
事件被取消,我不確定“ href
仍然可用”的問題; 但是如果你想刪除的href
從a
元素:
$('a[href]').attr('href','#');
將刪除它們(或者更確切地說,用#
替換URL)。
編輯回應OP的評論(提問):
好的,對不起;)我只想(通過點擊一個按鈕),禁用/啟用所有鏈接(點擊或href)元素(div或a)
$('#buttonRemoveClickId, .buttonClassName').click(
function() {
$('a, div').unbind('click');
});
$('#buttonReplaceClickId, .buttonOtherClassName').click(
function() {
$('a, div').bind('click');
});
試試這個來禁用點擊:
$(本).unbind( '點擊');
您可以將href
屬性直接設置為""
以防止原始文件顯示在狀態欄中,如果這是您要求的。
$(this).unbind().click(function(event){
event.preventDefault();
}).attr("href", "");
否則, event.preventDefault()
已經阻止鏈接被點擊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.