我有一个功能,当按下回车键或按下提交按钮时,它会工作...我正在使用这个...
$('#searchBtn').click(function(){
var str = $('#searchTxt').val();
$.get(searchStr+"&text=" + str, function(data){
fetchPhoto(data);
}, "json");
});
$('#searchTxt').keydown(function(event){
if (event.which == 13)
var str = $('#searchTxt').val();
$.get(searchStr+"&text=" + str, function(data){
fetchPhoto(data);
}, "json");
});
fetchPhoto 是一个相当长的过程,因为它会访问一些外部库,如果有人多次关闭它,它会给出一些奇怪的结果(多个结果)
如何防止这种情况发生?有点需要计时器或锁或其他东西......
最佳答案
您可以添加一个标志来防止 .get()
被多次触发。
试试这个:
var ok_to_click = true; // this var will prevent the $.get() to be fired when its value is false
$('#searchBtn').click(function () {
var str = $('#searchTxt').val();
if (ok_to_click) {
$.get(searchStr + "&text=" + str, function (data) {
fetchPhoto(data);
ok_to_click = true;
}, "json");
ok_to_click = false;
}
});
$('#searchTxt').keydown(function (event) {
if (event.which == 13) var str = $('#searchTxt').val();
if (ok_to_click) {
$.get(searchStr + "&text=" + str, function (data) {
fetchPhoto(data);
ok_to_click = true;
}, "json");
ok_to_click = false;
}
});
关于javascript - 如何阻止一个人多次加载一个函数jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18683277/