[英]jquery after ajax complete /done , to call a function, the function will execute more and more times. why?
我已经被困在这个问题上大约2天了。 我的代码( 这里是JSFiddle )是这样的:
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做了什么?
这意味着您可能会在每次加载时多次注册该事件。 你应该只这样做一次!
悬停本身在进入时调用该函数两次,在退出时调用一次..尝试
var foo = function(){
$(element).hover(function() {console.log("IN")},function() {console.log("OUT")});
}
但随后ThiefMaster指出你也多次注册了事件处理程序。 在您的滑块中,第二次您将再次添加事件处理程序,依此类推。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.