2017-06-19 48 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 
}