2014-12-10 3 views
0

У меня есть ситуация ниже.Как проверить, нажата ли кнопка мыши или нет во время перемещения мыши?

function mousemove(e){ 
if(left button clicked){ 
//drag the element 
} 
else{ 
//show the tooltip 
} 
} 

Первоначально я привязал функцию mousemove. в то время как перемещение мыши мне нужно проверить , нажата ли левая кнопка или нет. если щелкнуть, значит мне нужно перетащить его. else означает, что мне нужно показать всплывающую подсказку.

Я много искал. я не могу получить решение для всего браузера, Мне нужно сделать это для IE8, IE9, IE10, IE11, Chrome, firefox и сафари. пожалуйста, помогите мне ... заранее спасибо ..

+0

Установить флаг перетаскивания на 'mousedown', удалить на' mouseup'. На 'mousemove' перетащите, если флаг' on'. Вместо вашего условия будет 'if (flag) {... drag ...}' – skobaljic

ответ

1

Событие само по себе не говорит вам, если кнопка проходит, так что вы должны отслеживать его самостоятельно, используя mousedown и mouseup, что-то вроде этого:

var clickHeld = false; 
$('#myElement').on({ 
    'mousemove': function() { 
     if (clickHeld) { 
      // a click & drag is happening, do what you require 
     } 
    }, 
    'mousedown': function() { clickHeld = true; }, 
    'mouseup': function() { clickHeld = false; } 
}); 
Смежные вопросы