我将mouseenter / mouseleave事件绑定到一个元素(只是一个图像),该元素又执行两个功能。我的问题是我希望两个功能之一仅在第一个mouseenter上触发一次。
在第一个mouseenter上又发生了两件事,在第二个mouseneter上只有一件事发生了。
$(.bubbles).mouseenter(function(){
functionSwapImage(); //this should happen everytime
}).mouseleave(function(){
functionSwapImageBack(); //this should happen everytime
$(".bubbles").one("mouseleave", function(){
myFunction(); //this should happen once!
});
});
编辑:http://jsfiddle.net/Am5ZC/
如果将
.one
函数移至该块之外,并移至其自己的单独的鼠标enter / leave块中,则functionSwapImageBack()
仅触发一次(即,.one正在删除两个代码块的事件)。不太确定如何解决此问题,但感谢您的帮助!
最佳答案
使用命名空间事件尝试此操作,该事件仅删除具有命名空间的特定事件处理程序。
$(".bubbles").mouseenter(function(){
functionSwapImage(); //this should happen everytime
}).mouseleave(function(){
functionSwapImageBack(); //this should happen everytime
}).one("mouseleave.onlyonce", function(){
myFunction(); //this should happen once!
});