在`mousedown`事件期间添加新元素会阻止触发`click`事件?

我正在使用jquery事件,我在mousedown时在鼠标指针的位置添加一个新元素,并且在添加元素后,不会触发绑定的click事件。

任何建议都是可观的。

提前致谢。

马杜

码:

 
Click
Hello
var visualEle = $('div.vis'); visualEle.css({border:"1px solid"}); $('a').on("click", function (e) { e.preventDefault();}); $('div').on("mousedown", mDown); $('div').on("mouseup",mUp); function mDown(e) { e.preventDefault(); visualEle.css({ left: 100, top: 0, display: "block" }); } function mUp(e) { e.preventDefault(); $('span').append('mouse up triggerd
'); return false; } $('p').on("click",dClick); function dClick(e) { $('span').append('double click triggerd
'); }

在上面的代码中, mousedown完成后不会触发click事件。

根据这份文件

当鼠标指针位于元素上方时, click事件将发送到元素,并按下并释放鼠标按钮

在你的情况下,鼠标点在mousedown发生时结束但在此之后visualDiv移动并且在此元素上释放鼠标。

我能想到的可能解决方案感谢@ArunPJohny使用$(this).trigger("click");

 $('p').on("mousedown", function (e) { _x = e.pageX; _y = e.pageY; visualDiv.css({ left: _x, top: _y }); $(this).trigger("click"); }); $('p').on("click", function (e) { console.log(e.target) }); 

演示: http : //jsfiddle.net/c5CRd/