我正在制作一个Backbone.js支持的应用程序,尝试使用不同的方法来检测元素vs document
上的点击次数,这就是我想出的:
initialize: function() {
$(document).on('click', this.deselect.bind(this));
},
deselect: function(e) {
if (e.target.tagName == "HTML") {
return this.collection.deselect();
}
}
这是有效的,因为<html>
元素在点击document
时作为事件目标传递。但是jQuery documentation建议我将this
与event.target
进行比较(在我的情况下不起作用)或停止传播。
最好的方法是什么?另外我想知道为什么没人像我一样呢?
更新
从原始帖子开始,我发现最好检查事件目标是否为<html>
并更新代码。