Я работаю с событиями jquery, и я добавляю новый элемент во время mousedown
в позиции указателя мыши, и после добавления элемента событие привязанного click
не запускается.
Любое предложение заметно.
Заранее спасибо.
Мадху
Код:
<div style="border:1px solid">Click</div>
<span></span>
<div class="vis" style="display:none">Hello</div>
<script>
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<br/>');
return false;
}
$('p').on("click",dClick);
function dClick(e) {
$('span').append('double click triggerd<br/>');
}
</script>
В приведенном выше коде событие click
не запускается после завершения mousedown
.
согласно этому документу
Событие
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)
});
mouseup
- jsfiddle.net/arunpjohny/2WcYB/6