如何知道html元素是否被触发

时间:2018-04-10 04:47:01

标签: javascript jquery html

我能够触发mouseupmousedown个事件。用于触发我使用:

$(document).ready(function(){

    $("html").mouseup(function(){
       console.log("mouseup");
    });

    $("html").mousedown(function(){
       console.log("mousedown");
    });

});

我的问题是,如果我点击空格,我的代码也会触发。所以,我想在用户点击HTML元素时触发,而不是在白色屏幕上。有可能这样做吗?

3 个答案:

答案 0 :(得分:1)

我正在检查你的问题并意识到你想要一些概括的东西。所以我所做的是,我添加了一个条件,如果目标是html,你的进一步代码将不会执行(只会调用事件)。

$("html").mouseup(function(event){
   if(event.target !== $('html')[0]){
    console.log("mouseup");
   }
});

$("html").mousedown(function(event){
    if(event.target !== $('html')[0]){
    console.log("mousedown");
   }
});

答案 1 :(得分:0)

现在写一下你在整个html div上添加事件。这意味着<html> ... </html>标记内包含的所有内容都将响应该事件。将其修复为您要响应该事件的特定div的标记名称。

对于按钮的示例,它将变为

 $('button').on('mouseup', () => {
      console.log('mouse up on button')
 })`

答案 2 :(得分:0)

您可以使用*选择器。

$(document).ready(function() {
    //$("html").find("*").mouseup(function(e) { or
    $("html *").mouseup(function(e) {
        console.log("mouseup");
        e.stopPropagation();
    });
    //$("html").find("*").mousedown(function(e) { or
    $("html *").mousedown(function(e) {
        console.log("mousedown");
        e.stopPropagation();
    });
});