我已经坚持这个问题大约2天了。我的代码(JSFiddle here)因此是:
var foo = function(){
// The code in here will be execute more and more and more times
$(element).hover(function() {
console.log("buggie code run")
})
}
var sliderShow = $(secondElement).bxSlider({
onAfterSlide:function(currentSlideNumber) {
$.ajax("/echo/html/").done(function() {
foo();
})
}
})
我的问题是代码会运行多次。例如,当您将鼠标悬停在元素上时,它将触发该函数一次,但第二次将触发该函数两次。第三次它会发射3次,依此类推。为什么会这样?我是在做一个基本的逻辑错误,还是这个JavaScript做了什么?
答案 0 :(得分:2)
这意味着您可能会在每次加载时多次注册该事件。你应该只这样做一次!
答案 1 :(得分:0)
悬停本身在进入时调用该函数两次,在退出时调用一次..尝试
var foo = function(){
$(element).hover(function() {console.log("IN")},function() {console.log("OUT")});
}
但是当ThiefMaster指出你也多次注册了事件处理程序时。在你的滑块中,第二次你将再次添加事件处理程序,依此类推。