onClick 的 Javascript 2 函数仅运行最后一个

标签 javascript onclick

我在使用 AJAX 时遇到问题。通过 onclick 事件调用的 2 个函数,将每个值切换 AJAX 并返回两个 div 中的数据。如果只把一个函数放在一个onclick中。它运行良好。但输入 2,仅运行最后一个 ajax2('".$data."','".$num2."');。哪里有问题?

echo "<a OnClick=\"ajax1('".$data."','".$num1."');ajax2('".$data."','".$num2."');\">" click </a>";

两段js代码,功能类似。只是功能编号不同,处理页面和ruturn div不一样。

函数1

function ajax1(data,number) {
      HttPRequest = false;
      if (window.XMLHttpRequest) {
         HttPRequest = new XMLHttpRequest();
         if (HttPRequest.overrideMimeType) {
            HttPRequest.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) {
         try {
            HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      } 
      }
        var url = 'page1.php';
        var pmeters = "data=" + data + "&number=" + number;
        HttPRequest.open('POST',url,true);
        HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        HttPRequest.send(pmeters);
        HttPRequest.onreadystatechange = function()
        {
             if(HttPRequest.readyState == 4) 
              {
               document.getElementById("return1").innerHTML = HttPRequest.responseText;                 
              }
        }
   }

函数2

function ajax2(data,number) {
      HttPRequest = false;
      if (window.XMLHttpRequest) {
         HttPRequest = new XMLHttpRequest();
         if (HttPRequest.overrideMimeType) {
            HttPRequest.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) {
         try {
            HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      } 
      }
        var url = 'page2.php';
        var pmeters = "data=" + data + "&number=" + number;
        HttPRequest.open('POST',url,true);
        HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        HttPRequest.send(pmeters);
        HttPRequest.onreadystatechange = function()
        {
             if(HttPRequest.readyState == 4) 
              {
               document.getElementById("return2").innerHTML = HttPRequest.responseText;                 
              }
        }
   }

最佳答案

将两个函数的第一行更改为 var HttPRequest = false;。这使得 httprequest 对每个函数都是私有(private)的。

关于onClick 的 Javascript 2 函数仅运行最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6276288/

相关文章:

javascript - 使用 puppeteer 访问 HttpResponse 中的正文,设计为作为附件下载

javascript - KineticJS 中可拖动舞台上的可拖动形状

javascript - Cloudflare SSL 错误 522 Express

javascript - 点击事件时页面会自动重新加载。无法确定原因?

android:onClick xml 未执行

javascript - 在页面加载时 Conceal Facebook 客户聊天插件的问候对话框

javascript - npm WARN 已弃用 npmconf@2.1.2 : this package has been reintegrated into npm and is now out of date with respect to npm

javascript - React 中的 OnClick 事件

html - 需要帮助才能完成下拉菜单,以便仅在单击时激活。 (HTML 和 CSS)

Android 避免在不使用 onSingleTapConfirmed 的情况下为双击调用单击两次