Mar*_*ark 4 jquery boolean-logic logical-operators
我看到了这段代码,我不清楚!jQuery对象返回的jQuery代码中的' '做了什么:
$('#remove').click(function() {
return !$('#select2 option:selected').appendTo('#select1');
});
Run Code Online (Sandbox Code Playgroud)
编辑
做这件事的好例子是什么?
它将结果转换$('#select2 option:selected').appendTo('#select1')为布尔值,并将其否定.
然而,作为结果的appendTo是总是一个jQuery对象,和对象(jQuery的或不)总是truthy,结果!$('#select2 option:selected').appendTo('#select1')是总是假的.
所以我们有效的是:
$('#remove').click(function() {
$('#select2 option:selected').appendTo('#select1');
return false;
});
Run Code Online (Sandbox Code Playgroud)
false在jQuery事件处理程序中返回将停止发生的默认事件操作(例如,提交超链接的表单/导航)并停止事件在DOM树中向上传播.
所以我们有效的是:
$('#remove').click(function(e) {
$('#select2 option:selected').appendTo('#select1');
e.preventDefault();
e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)
使用return false而不是e.preventDefault(); e.stopPropagation();OK,但使用return !$(..)第一个示例的快捷方式是荒谬的,并且没有必要这样做.
链接:
bind()(别名click())preventDefault()stopPropagation()