我从以下代码调用函数:
<div id="header-button-news" class="header-button-info"> <a href="javascript:;" title="Новости" onclick="showNews()"></a> <div class="new">2</div> </div>
我的功能是
function showNews() { //other js which show block jQuery("#loader").show(); //ajax which load content to block jQuery.ajax({ type: "GET", url: link, dataType: "html", success: function(data) { jQuery('#top-info-news').html(data); }, complete: function(){ jQuery('#loader').hide(); }, }); }
我怎么只能拨打一次ajax电话?所以当内容被加载并且页面不被拒绝时不加载ajax吗?我尝试做布尔变量,但什么也没做,我支持这是因为我调用了everytime函数。请给我一个想法。
谢谢
当您想对该事件做某事时。
确定何时已加载数据。
var loaded = false; function showNews() { //other js which show block jQuery("#loader").show(); if(loaded) return; //ajax which load content to block jQuery.ajax({ type: "GET", url: link, dataType: "html", success: function(data) { jQuery('#top-info-news').html(data); }, complete: function(){ jQuery('#loader').hide(); }, }); loaded = true; }
或one.在您想一次调用时使用。
one.
<a href="javascript:;" title="Новости" onclick="showNews()" class="showNews"></a> jQuery('.showNews').one('click', function() { // your code });
"Attach a handler to an event for the elements. The handler is executed at most once per element."
参考