好的,所以我有一个div网格,如下所示:
<div class="check1"></div>
<div class="check1"></div><div style="clear:both;"></div>
<div class="check1"></div>
<div class="check1"></div>
在我的jquery中,我检查是否有一个div被点击了:
$('.check1').mousedown(function(){
$(this).css('background-color','blue');
});
我想做的是如果一个div被陈词滥调并按下但光标移动到另一个div上我也希望该div改变颜色。我尝试了这个例子,但无论是否调用了鼠标按下事件,都会调用mouseover事件。
$('.check1').mousedown(function(){
$(this).css('background-color','blue');
$('.check1').mouseover(function(){
$(this).css('background-color', 'blue');
});
});
这是可能的,如果是的话,我做错了什么/我需要改变什么?
答案 0 :(得分:5)
您可以使用简单的flag
概念
<强>代码:强>
var flag = 0;
$('.check1').mousedown(function () {
$(this).css('background-color', 'blue');
flag = 1;
}).mouseup(function () {
flag = 0;
}).mouseover(function () {
if (flag) {
$(this).css('background-color', 'blue');
}
});
答案 1 :(得分:2)
最短路:)
$('.check1').on('mouseover mousedown', function(e){
if (e.which == 1){
$(this).css('background-color', 'blue');
}
});
答案 2 :(得分:0)
试试这个:
$('.check1').mousedown(function(){
$(this).css({'background-color','blue'});
$(this).bind('mouseover', function(){
$(this).css({'background-color':'blue'});
}).bind('mouseout', function(){
$(this).css({'background-color':'green'});
});
});
答案 3 :(得分:0)
您只是忘记取消绑定mouseover
事件。
$('.check1').mousedown(function(){
$(this).css('background-color', 'blue')
$('.check1').on('mouseover',function(){
$(this).css('background-color', 'blue')
});
$(document).mouseup(function(){
$('.check1').off('mouseover');
});
});