我有以下代码可以禁用所有超链接,但是在某个事件之后,我想要重新启用它们,该怎么做?
我认为这并不像简单地将其设置为true那样简单。 ;)
谢谢大家
$("a").click(function() { return false; });
我认为这并不像简单地将其设置为true那样简单。 ;)
谢谢大家
$("a").click(function() { return false; });
不要像那样绑定"click"处理程序,而是这样做:
$('a').bind("click.myDisable", function() { return false; });
然后,当您想要删除该处理程序时,很容易:
$('a').unbind("click.myDisable");
这样可以避免影响那些绑定了"click"事件的其他元素。如果你只是解除"click"事件的绑定,你将会解除所有绑定于该事件的元素。
2014年修订 — 现在绑定事件的方式是使用.on()
方法:
$('a').on('click.myDisable', function() { return false; });
也许这样做会更好:
$('a').on('click.myDisable', function(e) { e.preventDefault(); });
取消绑定:
$('a').off('click.myDisable');
最后,您可以将处理程序绑定到文档主体,并处理动态添加的<a>
标签:
$('body').on('click.myDisable', 'a', function(e) { e.preventDefault(); });
// to unbind
$('body').off('click.myDisable');
试试这个:
// Better to use the live event handler here, performancewise
$('a').live('click', function() {... return false;});
// Now simply kill the binding like this
$('a').die('click');
再见
$('a').addClass('disabled');
$('a').click(function() {
if($(this).hasClass('disabled'))
return false;
});
#,这意味着:禁用其他页面的链接。
$(document).ready(function() {
$('a').attr('href', '#');
});
var disableLink = function(){ return false;};
$('a').bind('click', disableLink);
恢复:
$('a').unbind('click', dsiableLink);
你可以解除点击事件的绑定:
$('a').unbind('click')
$(function(){
$.myStopAnchor = function(){
$stop = true;
}
$.myNoStopAnchor = function(){
$stop = false;
}
$.myNoStopAnchor();
$("a").click(function(ev) {
if ($stop){
ev.stopPropagation()
}
return !$stop;
});
});
你应该能够解绑它。
$("a").unbind("click");