是否可以使用e.which和.click?

时间:2016-12-08 18:38:25

标签: jquery click

我想知道是否可以设置类似

的内容
$(document).click(function(e) {
    if(e.which == $('#target') {
        //execute code
    }
});

这意味着我在一个函数中有所有点击事件,if语句找出用户点击的位置。我希望这样做可以在网站上进行主动滚动,因为代码更清晰。

2 个答案:

答案 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(){ });