JavaScript:触发事件可恢复innerHtml属性

JavaScript:触发事件可恢复innerHtml属性,javascript,ajax,innerhtml,Javascript,Ajax,Innerhtml,我有一个有几个按钮的网页。其中一些按钮(我们将它们命名为BA1、BA2…)在HttpRequest之后修改页面元素的innerHtml属性,该属性的id为“ELEM_id”,因此从触发事件到修改ELEM_id的innerHtml属性需要一些时间 当浏览器加载页面时,ELEM_ID的innerHtml有一个默认值,我们将该值称为“value_1”: VALUE\u 1 当我按下按钮BA1时,一段时间后,该值变为“值2” VALUE\u 2 问题是,当我按下按钮BA2时,就像我按下它一样,ELEM_

我有一个有几个按钮的网页。其中一些按钮(我们将它们命名为BA1、BA2…)在HttpRequest之后修改页面元素的innerHtml属性,该属性的id为“ELEM_id”,因此从触发事件到修改ELEM_id的innerHtml属性需要一些时间

当浏览器加载页面时,ELEM_ID的innerHtml有一个默认值,我们将该值称为“value_1”:

VALUE\u 1

当我按下按钮BA1时,一段时间后,该值变为“值2”

VALUE\u 2

问题是,当我按下按钮BA2时,就像我按下它一样,ELEM_ID.innerHtml的值返回到值_1,当HtmlResponse准备就绪时,它的值更改为值_3。 为什么会这样

以下是一些代码:

var additional_order = [[false,'VAR_1'],[false,'VAR_2'],[false,'VAR_3'],[false,'4'],[false,'VAR_5'],[false,'VAR_6']];
var names = [];
var labelA = "cor_price_visible_";
var labelB = "cor_price_";
names.push("name1");
names.push("name2");
names.push("name3");
names.push("name4");

function updatePrice(n) {
    additional_order[n][0]=!additional_order[n][0];
    var request = "SSID=364c59b135c011c0734893225ab8a8a9";

    for (i = 0; i<additional_order.length;i++) {
        if (additional_order[i][0]) {
            request=request+"&";
            request=request+additional_order[i][1]+'=YES'; 
        }
    }
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
                result = JSON.parse(this.responseText);
            for (i=0;i<result.length;i++) {
                document.getElementById(labelA+names[i]).innerHTML=""+(result[i].toFixed(2));
                document.getElementById(labelA+names[i]).value=(result[i].toFixed(2));
            }
        }
    }

    xhttp.open("POST","services/livepriceservice.php/",true);
    xhttp.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
    xhttp.send(request);

}


<button id="BA1" onclick="updatePrice(1)">Press Me!(1)</button>
<button id="BA2" onclick="updatePrice(2)">Press Me!(2)</button>
...
var附加顺序=[[false,'var_1'],[false,'var_2'],[false,'var_3'],[false,'var_4'],[false,'var_5'],[false,'var_6'];
变量名称=[];
var labelA=“相关价格可见”;
var labelB=“相关价格”;
名称。推送(“名称1”);
名称。推送(“名称2”);
名称。推送(“名称3”);
名称。推送(“名称4”);
函数updatePrice(n){
附加订单[n][0]=!附加订单[n][0];
var request=“SSID=364c59b135c011c0734893225ab8a8a9”;

对于(i=0;i尝试调试dom更改并获取子树上的断点,或属性更改


您好,您有没有现场示例?请尝试一步一步地调试您的
BA2
click@DanilGholtsman调试时我注意到问题的原因是jquery.js脚本中的某些内容的执行(有一个函数可以恢复节点属性的默认值),但没有显式调用任何内容。并且,
onreadystatechange
是此范围内唯一的事件?@DanilGholtsman有$(document).ready(函数(){$('[data toggle=“tooltip”]')。tooltip();});这是我已经做过的^^…元素被jquery.js的函数修改了,我正在修改这个问题来写下这个函数。
html: function(a) {
        return S(this, function(a) {
            var b = this[0] || {}
              , c = 0
              , d = this.length;
            if (void 0 === a && 1 === b.nodeType)
                return b.innerHTML;
            if ("string" == typeof a && !za.test(a) && !la[(ja.exec(a) || ["", ""])[1].toLowerCase()]) {
                a = r.htmlPrefilter(a);
                try {
                    for (; c < d; c++)
                        b = this[c] || {},
                        1 === b.nodeType && (r.cleanData(ma(b, !1)),
                        b.innerHTML = a);
                    b = 0
                } catch (e) {}
            }
            b && this.empty().append(a)
        }, null, a, arguments.length)
    }