为什么我的jquery模式在完整页面ajax加载后停止工作?

时间:2017-06-13 17:32:53

标签: javascript jquery ajax

我发现我的jQuery对话框有问题(使用jquery 1.3,很旧但我无法更新)。

当我这样做时

var request = $.ajax({
  url: "${Request.context}/info/" + userId,
  success: function(response) {
    $("#userInfo").html(response);
  }
});

$("#divUserInfo").dialog('open');
}

其中

$('#divUserInfo').dialog({
  width: 700,
  height: 250,
  autoOpen: false,
  modal: true,
  title: "User Info",
  resizable: false
});

对话框本身运行正常,每当没有内容或我$("#userInfo").html("any string possible");

时打开

但是当我加载ajax响应的整个页面时,我在控制台上看不到任何错误,但我无法重新打开对话框。有什么方法可以避免这种情况发生吗?我应该重新加载DOM或类似的东西吗?或提取反应的主体?

1 个答案:

答案 0 :(得分:1)

在用ajax响应替换DOM之后,您需要重新初始化对话框插件,以便它也适用于更新的DOM元素

试试这个:

var request = $.ajax({
  url: "${Request.context}/info/" + userId,
  success: function(response) {
    $("#userInfo").html(response);
    $('#divUserInfo').dialog({
      width: 700,
      height: 250,
      autoOpen: false,
      modal: true,
      title: "User Info",
      resizable: false
    });
  }
});