请查看this example。
我有4个div,白色背景。 当我点击div时,它的背景变为蓝色。 当我再次单击它时,背景切换回白色。
现在我想通过拖动来突出显示多个div:我点击第一个div并按住鼠标按钮。 div变蓝了。使用单击的按钮,我可以立即拖动其他div,并在光标位于元素上时更改颜色。
我已经尝试过使用JQuery的.mousedown函数,但我没有让它工作。
HTML :
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
CSS
.box{
float: left;
height: 100px;
width: 100px;
border: 1px solid #000;
margin-right: 10px;
}
.highlight{
background: #0000FF;
}
JS
$(document).ready(function(){
$('.box').click(function(){
if($(this).hasClass('highlight')){
$(this).removeClass('highlight');
}
else{
$(this).addClass('highlight');
}
});
});
答案 0 :(得分:4)
您可以使用mouseenter事件来处理它
$(document).ready(function () {
var $box = $('.box').mousedown(function () {
$(this).toggleClass('highlight');
var flag = $(this).hasClass('highlight')
$box.on('mouseenter.highlight', function () {
$(this).toggleClass('highlight', flag);
});
});
$(document).mouseup(function () {
$box.off('mouseenter.highlight')
})
});
演示:Fiddle
答案 1 :(得分:2)
尝试,
$(document).ready(function () {
var isMouseClicked = false
$('.box').mousedown(function () {
isMouseClicked = true;
}).mouseup(function () {
isMouseClicked = false;
}).mousemove(function () {
if (isMouseClicked) {
$(this).addClass("highlight");
}
});
});