我看到了这段代码,但我不清楚“!
”在这行 jQuery 代码中对 jQuery 对象返回的作用:
$('#remove').click(function() {
return !$('#select2 option:selected').appendTo('#select1');
});
编辑
什么是这样做的好例子?
最佳答案
它将 $('#select2 option:selected').appendTo('#select1')
的结果转换为 bool 值,并将其取反。
但是,由于 appendTo
的结果始终是 jQuery 对象,并且对象(无论是否为 jQuery)始终为 true,因此 !$('#select2 option:selected ').appendTo('#select1')
始终 false。
所以我们所拥有的是有效的:
$('#remove').click(function() {
$('#select2 option:selected').appendTo('#select1');
return false;
});
在 jQuery 事件处理程序中返回 false
将停止发生默认事件操作(例如提交表单/超链接导航)并停止传播任何事件在 DOM 树的更上层。
所以我们所拥有的是有效的:
$('#remove').click(function(e) {
$('#select2 option:selected').appendTo('#select1');
e.preventDefault();
e.stopPropagation();
});
使用return false
而不是e.preventDefault(); e.stopPropagation();
可以,但是使用 return !$(..)
作为第一个示例的快捷方式是荒谬的,并且没有 需要这样做。
重申一下我的观点,这里需要注意的最重要的事情是,从来没有充分的理由/案例来这样做。
链接:
关于boolean-logic - 不清楚这个 jQuery 语法 : return ! $(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7506618/