У меня есть большая таблица с с каждым ячейкой тем, чтобы быть 25x25 и отделение в каждом. У каждого отделения есть класс "узла", и цвет фона применяется к ним всем. Я нахожусь в процессе написания некоторого кода jQuery, который изменит цвет каждого отделения, когда мышь пробежится через него, в то время как кнопка мыши снижается.
У меня в настоящее время есть он так, это работает, когда я мышь, но я только хочу это работа, когда кнопка мыши снижается также. Я попробовал много различных способов заставить это работать, но до сих пор у меня не было взгляда, ниже мой текущий код.
$(document).ready(function(){
$(".node").mouseover(function(){
$(this).css({background:"#333333"});
});
});
Попробуйте что-то вроде этого:
$(document).ready(function(){
var isDown = false; // Tracks status of mouse button
$(document).mousedown(function() {
isDown = true; // When mouse goes down, set isDown to true
})
.mouseup(function() {
isDown = false; // When mouse goes up, set isDown to false
});
$(".node").mouseover(function(){
if(isDown) { // Only change css if mouse is down
$(this).css({background:"#333333"});
}
});
});
EDIT:
Возможно, вы захотите сделать отдельный mousedown
на .node
для выбора отдельных элементов.
$('.node').mousedown(function() {
$(this).css({background:"#333333"});
});
EDIT:
Вот альтернативный метод с использованием bind
и unbind
.
$(document).mousedown(function() {
$(".node").bind('mouseover',function(){
$(this).css({background:"#333333"});
});
})
.mouseup(function() {
$(".node").unbind('mouseover');
});
$('.node').mousedown(function() {
$(this).css({background:"#333333"});
});