[英]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.