在ajax发布后,附加的div不会在IE 8中显示

时间:2012-05-18 17:58:07

标签: jquery css ajax internet-explorer dom

我将数据发布到我的网络服务器并返回成功或失败状态。我想在ajax发布后向用户显示确认或错误消息。它在Chrome和IE 9中按预期工作,但IE 8不会显示新附加的div,这是我的确认消息。

使用IE 8的DOM检查器,我发现div元素实际上被附加到DOM,但是没有被显示。在我追加元素后,IE可能没有得到某种屏幕刷新事件?我使用$.getJSON()在我的代码中的其他地方的ajax回调函数中添加DOM元素 - 似乎IE正在看到POST方法并且决定不让我更新DOM。

我的ajax代码如下所示:

$.post("adminpage.ashx?action=newAccount", newData, function (response) {
      getAccount(newData.accountNum);   // display the new account
      if (response == "success") {
          createAlert("Account was successfully updated.", "success").appendTo(".container");
      } else if (response == "error") {
          createAlert("There was an error updating the account.", "error").appendTo(".container");
      }
});

createAlert()返回包含我的确认或错误消息的div。

提前致谢。

编辑:这是我的createAlert函数的代码:

function createAlert(message, type) {
    var alert = $("<div>");
    alert.addClass("alert alert-block");
    if (typeof type != "undefined") {
        alert.addClass("alert-" + type);
    }

    var dismissButton = $("<button>");
    dismissButton.addClass("close").attr("data-dismiss", "alert").text("x");
    dismissButton.appendTo(alert);

    var alertText = $("<p>");
    alertText.text(message);

    alert.append(message);

    return alert;
}

IE 8的调试器显示的HTML:

<DIV class="alert alert-block alert-success">
    <BUTTON class=close type=submit data-dismiss="alert">x</BUTTON>Account was successfully updated.
</DIV>

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,但我终于通过使用变体函数来实现它,而不是写

  someObj.appendTo('.blabla');

我写了

 $('.blabla').append(someObj);

如果你想尝试

$.post("adminpage.ashx?action=newAccount", newData, function (response) {
  getAccount(newData.accountNum);   // display the new account
  if (response == "success") {
      $(".container").append(createAlert("Account was successfully updated.", "success"));
  } else if (response == "error") {
      $(".container").append(createAlert("There was an error updating the account.", "error"));
  }
});