jQuery:如何检测鼠标单击位置是否在div之外

时间:2015-05-27 10:03:48

标签: javascript jquery mouseevent mousedown

我有这个代码可以检测网站上的任何鼠标点击:

$(document).mousedown(function() {
    console.log("you clicked somewhere.");
});

如果点击的位置超出#specificDiv,如何才能触发操作?

5 个答案:

答案 0 :(得分:6)

您可以使用:

$(document).mousedown(function(event) {
 var specificDiv= $("#specificDiv");
 if (specificDiv.is(event.target))
   console.log("you clicked specificDiv.");
});

答案 1 :(得分:0)

$(document).mousedown(function() {
    if($(this).closest('#specificDiv').length == 0){
    }
});

答案 2 :(得分:0)

使用事件对象的target属性。

target指向生成事件的元素



var myDiv = $("#myDiv");
$(document).mousedown(function(ev) {
  if(myDiv.is(ev.target)){
    console.log("you clicked on myDiv.");
  }else{
    console.log("you clicked somewhere.");
  }
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myDiv" style="height:100px; width:100px; background-color:#00FF00;" ></div>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

这可以帮到你:

$(document).mousedown(function (ev) {
    var $target = $(ev.target);
    var $specificDiv = $target.closest('#specificDiv');

    if (!$specificDiv || !$specificDiv.length) {
        // clicked location is outside
    }
});

答案 4 :(得分:-1)

$('#your_div').mousedown(function(e){
    e.stopPropagation(); //Prevents the event from bubbling up the DOM tree, preventing any parent handlers from being notified of the event.
});

$(document).mousedown(function(e){
    console.log("you clicked somewhere.");
});