ajax代码工作时,使用javascript禁用html中的链接

disable links in html with javascript when an ajax code working

本文关键字:html 禁用 链接 javascript 使用 代码 工作 ajax      更新时间:2023-09-26

我在一个html页面中有大约20个链接,如下所示:

<a href="#" onclick="reserve_all(some parameters);"> <img  border="0" src="../images/shoping.gif"/></a>

reserve_all函数是一个ajax代码,它通过耗时的查询从数据库中获取数据。我希望当查询运行时,所有20个链接都将被禁用。

您可以在reserve_all函数中完成ajax调用

function reserve_all()
{
  //disable function for all link
   $('a').unbind('click', reserve_all);
   $('a').bind('click', disableLink);
   //ajax call to database 

}

//on complete ajax call -- than bind link again 
   $('a').unbind('click', disableLink);
   $('a').bind('click', reserve_all);

    function disableLink(e) {
        // cancels the event
        e.preventDefault();
        return false;
    }

在您的全球范围内:

var aStandardAnchors = document.getElementsByTagName('a');

在您的reserve_all函数中:

reserve_all = function(params) {
  var aAnchors = document.getElementsByTagName('a');
  for(var i = 0; i < aAnchors.length; i++) 
    aAnchors[i].removeAttribute('onclick');
  // do the ajax call
}

在ajax调用的回调中(完成时):

var aAnchors = document.getElementsByTagName('a');
for(var i = 0; i < aAnchors.length; i++) 
  aAnchors[i].setAttribute('href',aStandardAnchors[i].getAttribute('onclick'));