简体   繁体   English

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

[英]Javascript 2 functions for onClick only run last one

I have a problem using AJAX.我在使用 AJAX 时遇到问题。 The 2 functions that are called via the onclick event, post each value toggle AJAX and back data in two divs.通过 onclick 事件调用的 2 个函数,发布每个值切换 AJAX 并在两个 div 中返回数据。 If only put one function in one onclick.如果只将一个 function 放在一个 onclick 中。 it runs well.它运行良好。 but put 2, only run the last one ajax2('".$data."','".$num2."');但是放2,只运行最后一个ajax2('".$data."','".$num2."'); . . Where is the problem?问题出在哪里?

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

two js code, function is similar.两个js代码,function类似。 just function number, processing page and ruturn div is not same.只是 function 编号,处理页面和 ruturn div 不一样。

function1功能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;                 
              }
        }
   }

function2功能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;                 
              }
        }
   }

Change the first line of both functions to var HttPRequest = false;将两个函数的第一行更改为var HttPRequest = false; . . This makes the httprequest private to each function.这使得 httprequest 对每个 function 都是私有的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM