我想知道是否可以设置类似
的内容$(document).click(function(e) {
if(e.which == $('#target') {
//execute code
}
});
这意味着我在一个函数中有所有点击事件,if语句找出用户点击的位置。我希望这样做可以在网站上进行主动滚动,因为代码更清晰。
答案 0 :(得分:3)
您必须使用e.target
引用当前点击的对象而不是e.which
,然后获取id
并将其与目标ID target
进行比较,请尝试:
$(document).click(function(e) {
var target_id = 'target';
if(e.target.id == target_id) {
//execute code
}
});
希望这有帮助。
$(document).click(function(e) {
var target_id = 'target';
if(e.target.id == target_id) {
console.log('Target clicked');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Div 1</div>
<div>Div 2</div>
<div id='target'>Div 3</div>
<div>Div 4</div>
答案 1 :(得分:2)
您正在比较jQuery对象的键引用。
e.which == $('#target')
您可以使用
$("#target").is(e.target)
你可以比较ids
e.target.id === "target"
或者您可以使用jQuery为事件委派构建的内容
$(document).on("click", "#target", function(){ });