是否可以检测每个元素上页面上的鼠标点击?

时间:2015-08-30 08:14:41

标签: javascript google-chrome google-chrome-extension

如果用户点击页面上的任意位置,甚至点击没有元素或链接,我想触发一个功能。有可能吗?

扩展程序仅在youtube.com上运行,因此我无法将页面上的每个元素添加到触发器中,并且我假设每个页面都有不同的元素ID。

2 个答案:

答案 0 :(得分:1)

Emmanouil Chountasis是正确的,您可以使用"Detect left mouse button press"处的代码来检测左鼠标点击式浏览器。

对于问题的核心,我认为您正在寻找的是事件委派。在jQuery中,

// Select a wrapper for the events
$('body')
  // Whenever any element in the <body> is clicked
  .on('click', '*', function (evt) {
    // Emmanouil Chountasis's suggestion would be called right here
    if (isLeftClick(evt)) { 
      // ... do stuff
    }
  });

请参阅http://learn.jquery.com/events/event-delegation/

答案 1 :(得分:0)

Reed 的回答工作正常,但它多次触发该操作。我发现 this solution 仅适用于鼠标左键触发并且每次点击执行一次

$("body").unbind().click(function() {
    //Do Stuff
});