Javascript jQuery:如何禁用div中的所有内容?但还是让一切都可见?
目标是在单击一个链接时禁用所有链接,然后禁用所有链接,直到服务器发送不可禁用的命令为止(使用类似的方法禁用) 因此,由于所有链接都在一个包含div的目录中,我想我可以暂时禁用它Javascript jQuery:如何禁用div中的所有内容?但还是让一切都可见?,javascript,jquery,Javascript,Jquery,目标是在单击一个链接时禁用所有链接,然后禁用所有链接,直到服务器发送不可禁用的命令为止(使用类似的方法禁用) 因此,由于所有链接都在一个包含div的目录中,我想我可以暂时禁用它 我该怎么做呢?如果您只想禁用默认链接行为,您可以结合使用委托和事件。preventDefault: $('#container').delegate('a', 'click', function(e) { if (linksDisabled) { e.preventDefault(); }
我该怎么做呢?如果您只想禁用默认链接行为,您可以结合使用
委托
和事件。preventDefault
:
$('#container').delegate('a', 'click', function(e) {
if (linksDisabled) {
e.preventDefault();
}
});
然后,您可以根据需要在其他事件处理程序中将linksDisabled
(在父范围中)设置为true
或false
如果这些链接做的是Javascripty的事情,那就有点棘手了。如果(linksDisabled)检查每个事件处理程序,可能最容易将放入。尝试以下操作:
$("#YOUR_DIV a").click(function(){
return false;
})
如果元素上有其他事件处理程序,那么这可能会在其他事件处理程序之后执行,因此根本没有任何效果。这可能是禁用JavaScript链接的一个好方法。但是,您需要一种方法来确保首先触发此事件处理程序。使用preventDefault()
而不是return false是否有优势代码>?@Lèse majesté它允许继续传播。我个人觉得这更直观。此外,它可以在事件处理程序中的任意点调用,而不仅仅是在最后。这与此处无关,但我希望我的代码保持一致。@DerNalia SetlinksDisabled
tofalse
。