2017-06-19 70 views
0

如果我將鼠標懸停在我的元素上5次然後json數據已經加載了5次,但我希望當我將鼠標懸停在我的元素上時,只加載json數據一次。 獲取json數據只有一次

$(document).on('mouseover', '.details-checkin,.details-checkout', function() { 
 
    $.getJSON('http://content.anitur.com/web/Assets/js/data.json', function(data) { 
 
    //bla bla blaaa 
 
    }); 
 
});

+0

的可能的複製[如何在我的情況下發送AJAX調用一次(https://stackoverflow.com/questions/ 43774951 /如何發送ajax-call-only-once-in-my-case) –

+1

或者[如何只調用一次ajax](https://stackoverflow.com/q/11738859/215552)或[Prevent來自兩次發射的ajax調用](https://stackoverflow.com/q/26475445/215552)... –

+0

對不起,謝謝 –

回答

2

您可以添加一個簡單的檢查,看看是否已經發出這一呼籲的。這使用事件處理程序外的變量作用域

var isLoading = false; 
$(document).on('mouseover', '.details-checkin,.details-checkout', function() { 
    if(isLoading === false) { 
    isLoading = true 
    $.getJSON('http://content.anitur.com/web/Assets/js/data.json', function(data) { 
     //bla bla blaaa 
    }); 
    } 
}); 
+0

謝謝它的作品! –

+0

@ani_css很高興它爲你工作,隨時標記爲回答:) –

1

您是否考慮過使用sessionStorage?如果你需要得到JSON只有一次會議上,您可以添加這樣的事情:

sessionStorage.jsonWasRead = 'true'; 

if (sessionStorage.jsonWasRead != 'true') { 
    //your read json code 
}