2014-02-11 58 views
0

我試圖在我滾動某個元素(查看包含該元素的整體數據)時展示某些內容的預覽,以及何時展開所有內容都恢復原樣。問題是當我快速移動鼠標光標時,有時候mouseout方法不會發生,數據保持更新,我不希望這樣。任何想法我怎麼能做到這一點?jquery mouseover和mouseout bug

$(document).on("mouseover", ".checkRezolvata", function(e){ 
var idTemp = ""; 
idTemp = $(this).parent().parent().parent().attr("id"); 
data = { 
id: idTemp, 
set: 1 } 

$.ajax({ 
    type: "POST", 
    url: "crm/setRezolvataTemp.php", 
    data: data, 
    async: false, 
    success: function(data){ 
    if(data == 1) { 
     getStats(); 
     getTarget();        
    } else 
    alert("Eroare la schimbarea starii crmului temp!"); 
    },error: function(){ 
    alert("eroare"); 
    } 
});    
}); 

$(document).on("mouseout", ".checkRezolvata", function(){ 
var idTemp = ""; 
idTemp = $(this).parent().parent().parent().attr("id"); 
data = { 
id: idTemp,set: 0} 

$.ajax({ 
type: "POST", 
url: "crm/setRezolvataTemp.php", 
data: data, 
async: false, 
success: function(data){ 
    if(data == 1) { 
    getStats(); 
     getTarget();        
} else 
alert("Eroare la schimbarea starii crmului temp!"); 
},error: function(){ 
alert("eroare"); 
} 
});    
});  
+1

那麼使用'mouseenter/mouseleave'來代替呢?! –

+0

與mousetner/mouseleave同樣的問題 – arrd

+0

所以請提供一個jsfiddle來複制你的問題 –

回答

1

您可以嘗試jQuery中的mouseentermouseleave事件處理程序。 mouseovermouseout是經常有點棘手,也看到:

http://api.jquery.com/mouseenter/

http://api.jquery.com/mouseleave/

MouseEnter事件不同於鼠標懸停在它處理事件冒泡的方式。如果在此示例中使用了mouseover,那麼當鼠標指針移到Inner元素上時,處理程序將被觸發。這通常是不受歡迎的行爲。另一方面,mouseenter事件只在鼠標進入它綁定的元素時觸發其處理程序,而不是後代。所以在這個例子中,當鼠標進入Outer元素而不是Inner元素時,觸發器被觸發。