2011-01-02 29 views
11

olsa bile çağrılır Bu örnekte denerseniz: http://jsfiddle.net/bY3CC/3/ "Fare taşındı" metni, fareyi belgenin üzerine getirmeme rağmen görünür ve ben de yine de ...jQuery mousemove() fare hala

Neden bu? ; \

Ve ileti yalnızca Chrome'da görünür gibi de görünüyor ....

Garip:

+0

muhtemelen ilişkili stackoverflow.com/a/17819113/2464167 – argaz

cevap

4

-s küresel event nesne standart dışı, bu nedenle yalnızca bazı tarayıcılarda var, IE gibi (belki de sadece quirks modunda) ve Chrome'da görünür bir şekilde.

olayı işleyicisinin bir parametre olarak olay nesnesini kabul: http: //

var last_moved=0; 
$(document).mousemove(function(e){ 
    var now = e.timeStamp;  
    if (now - last_moved > 1000) { 
    $('#messages').append('mouse moved<br/>'); 
    last_moved = now; 
    } 
}); 

jsfiddle.net/bY3CC/5/

+0

Tamam, bu sorunun yarısını çözdü. Şimdi, farenin hala devam edip etmediği mesajı niye? – Cristy

+0

Şu anda Chrome'um yüklü değil, ancak Firefox 3, IE 9, Opera 11 ve Safari 4'te bunu test ettim ve bunlar, fare hala çalışırken etkinliği tetiklemiyor. Belki de Chrome tuhaf bir şey yapar ya da belki de buna neden olabilecek bir eklenti veya bir şeyiniz var mı? – Guffa

+0

Aynı zamanda Chrome kurulumumda (9.0.597.19 beta) gerçekleşiyor. Tuhaf olarak, mevcut fare piksel konumunu yazdırmak her zaman aynı konumda olduğunu gösterir. – AbdullahC

11

deposu x, y koordinatları

$(document).mousemove((function(){ 
    var x,y; 

    return function(evt){ 
     if(evt.clientX == x && evt.clientY == y){ 
      return; 
     } 
     x = evt.clientX; 
     y = evt.clientY; 
     $('#messages').append('mouse moved<br/>'); 
    }; 
})()); 
İlgili konular