[英]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.