наведение мыши, в то время как mousedown

У меня есть большая таблица с с каждым ячейкой тем, чтобы быть 25x25 и отделение в каждом. У каждого отделения есть класс "узла", и цвет фона применяется к ним всем. Я нахожусь в процессе написания некоторого кода jQuery, который изменит цвет каждого отделения, когда мышь пробежится через него, в то время как кнопка мыши снижается.

У меня в настоящее время есть он так, это работает, когда я мышь, но я только хочу это работа, когда кнопка мыши снижается также. Я попробовал много различных способов заставить это работать, но до сих пор у меня не было взгляда, ниже мой текущий код.

$(document).ready(function(){
  $(".node").mouseover(function(){
   $(this).css({background:"#333333"});
 });
});
12
задан Stanni 7 June 2010 в 09:12
поделиться

1 ответ

Попробуйте что-то вроде этого:

$(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"});
  });
23
ответ дан 2 December 2019 в 06:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: