我看到了这段代码,我不清楚jQuery对象返回时这行jQuery代码中'!
'的作用:
$('#remove').click(function() {
return !$('#select2 option:selected').appendTo('#select1');
});
修改
这样做有什么好处?
答案 0 :(得分:6)
它将$('#select2 option:selected').appendTo('#select1')
的结果转换为布尔值,并将其否定。
但是,由于appendTo
始终是jQuery对象,而对象(jQuery与否)始终是真实的,!$('#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 !$(..)
作为第一个示例的快捷方式是荒谬的,并且 没有 需要这样做。
链接:
bind()
(click()
的别名)preventDefault()
stopPropagation()