Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:如何禁用div中的所有内容?但还是让一切都可见?_Javascript_Jquery - Fatal编程技术网

Javascript jQuery:如何禁用div中的所有内容?但还是让一切都可见?

Javascript jQuery:如何禁用div中的所有内容?但还是让一切都可见?,javascript,jquery,Javascript,Jquery,目标是在单击一个链接时禁用所有链接,然后禁用所有链接,直到服务器发送不可禁用的命令为止(使用类似的方法禁用) 因此,由于所有链接都在一个包含div的目录中,我想我可以暂时禁用它 我该怎么做呢?如果您只想禁用默认链接行为,您可以结合使用委托和事件。preventDefault: $('#container').delegate('a', 'click', function(e) { if (linksDisabled) { e.preventDefault(); }

目标是在单击一个链接时禁用所有链接,然后禁用所有链接,直到服务器发送不可禁用的命令为止(使用类似的方法禁用)

因此,由于所有链接都在一个包含div的目录中,我想我可以暂时禁用它


我该怎么做呢?

如果您只想禁用默认链接行为,您可以结合使用
委托
事件。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 Set
linksDisabled
to
false