2014-02-11 56 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元素时,触发器被触发。