取消事件从可拖动的jQuery冒泡,以在拖动停止时单击子元素

时间:2019-03-28 00:35:54

标签: javascript jquery

我有一个带有可点击标记的可拖动div:

<div id='myDiv'>
      <a id='mylabel' onclick="alert('i am clicked')">some text</a>
</div>
$("#myDiv").draggable({
      stop: function(e){
             //want to cancel the click event on the nested a element 
             //e.preventDefault(); ??
             //e.cancelBubble(); ??
            }
});

当我停止拖动时,将触发click事件,这是我不希望的。我尝试了preventDefault并在停止放置事件上取消,但是click事件仍然会触发。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我知道了。技巧是将click事件附加到可拖动的div,如下所示:

$("#myDiv").click(event.stopPropagation());

由于拖动div还会调用click事件,然后将click事件传播到子标签,因此stop drag事件是错误的停止方法。消除点击传播是一种方法。