我是一个正在建立一个简单的jQuery脚本的乞丐,当我拖出它的界限时,我希望我的动作发生。所以我正在考虑检测一个mousedown,并且在其功能内部有一个mouseleave。
但是,所发生的事情并不是我所期待的,因为每次我将鼠标移到它上面 - 无需点击,事件就会被触发。
这是我给他们的代码。
$(document).ready(function() {
$(".box").mousedown(function() {
$(".box").mouseleave(function() {
alert("Hello world!");
});
});
});
非常感谢,谢谢!
答案 0 :(得分:1)
$(".box").mousedown(function() {
alert('mousedown');
$(this).addClass('imclicked');
}).mouseleave(function() {
if($(this).hasClass('imclicked')) {
alert("Hello world!");
$(this).removeClass('imclicked');
}
});;
答案 1 :(得分:0)
试试这个:
$(document).ready(function() {
$(".box").mousedown(function() {
$('.box').addClass('clicked');
});
$(".box").mouseleave(function() {
if ($(this).hasClass('clicked')){
$(this).removeClass('clicked');
alert("Hello world!");
}
});
});
mouseleave
仅在.box
包含CSS类clicked
时才会继续,然后会删除该类,从而阻止再次触发mouseleave
。
答案 2 :(得分:0)
在事件触发后解除绑定:
$(".box").mousedown(function() {
$(this).mouseleave(function(){
$(this).unbind('mouseleave');
alert("Hello world!");
})
})