你是如何绕过"绕过"小鼠?

时间:2015-07-22 15:18:17

标签: javascript css angularjs html5 mouseevent

我试图让它在用户点击时发生这种情况。

按顺序,

  

有所作为。 (不具体,这不是重要的部分。)

     

触发鼠标向上。

使用:angular,html,css。 不使用:jQuery

有什么建议吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

您附加了两个事件侦听器,一个是用户按下鼠标mousedown。一旦用户放手,就会触发mouseup事件。所有鼠标事件侦听器都传递一个event对象,您可以使用该对象获取有关事件的信息,即:鼠标x和y位置。可用方法之一是event.preventDefault()这将阻止浏览器执行此操作通常想做。示例:cmd/ctrl + s将导致浏览器保存html页面。 preventDefault会停止此操作。

document.addEventListener('mousedown' function (event) {
    // Do something
})
document.addEventListener('mouseup', function (event) {
    event.preventDefault()
})

解决OP评论:

var noMouseUp = true
document.addEventListener('mousedown', function () {
  if (noMouseUp) {
      // do something
      noMouseUp = false
  }
})
document.addEventListener('mouseup', function (event) {
 if (!noMouseUp) {
    noMouseUp = true
 }

})

答案 1 :(得分:0)

在mouseup回调中使用events.preventDefault();

event.stopPropagation();之后立即使用,以避免事件传递到其他分层元素。

bypassed_element.onclick = function(event){

      event.preventDefault();
      event.stopPropagation();
};