2016-11-02 2 views
0

In meiner Konsole beginnt das folgende Skript nicht nur beim Klicken mit dem Mausrad zu loggen, sondern fährt auch fort, nachdem Sie die Maustaste losgelassen haben.jQuery Nur anhören, wenn gedrückt gehalten wird

Wie kann ich mein Skript nur protokollieren, während das Mausrad gedrückt gehalten wird und anhalten, wenn Sie loslassen?

+0

zugreifen können, können Sie 'Klick' Ereignis statt 'mousedown-' verwenden? –

+0

@KhorshedAlam Ich habe dies versucht, aber die Protokolle starten erst nach der Freigabe bei Verwendung von Click-Ereignis. –

Antwort

2

würden Sie speichern etwas in mousedown und mouseup, die Sie in mousemove

$(document).on({ 
 
    mousedown: function(e) { 
 
    e.preventDefault(); 
 

 
    if (e.which === 2) 
 
     $(window).data('isDown', true).data('mPosX', e.pageX).data('mPosY', e.pageY); 
 
    }, 
 
    mouseup: function(e) { 
 
    e.preventDefault(); 
 

 
    if (e.which === 2) 
 
     $(window).data('isDown', false); 
 
    }, 
 
    mousemove: function(e) { 
 
    if ($(window).data('isDown')) { 
 
     var CmPosX = e.pageX, 
 
      CmPosY = e.pageY, 
 
      mPosX = $(window).data('mPosX'), 
 
      mPosY = $(window).data('mPosY'); 
 

 
     console.log('Original X: ' + mPosX + 
 
        ', New X: '  + CmPosX + 
 
        ' | Original Y: ' + mPosY + 
 
        ', New Y: '  + CmPosY); 
 
    } 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p>Hold down mousewheel and move ...</p>

+0

Das ist sehr nett. Vielen Dank! –

Verwandte Themen