如何在通过$ .get接收其内容的对话框中执行Jquery代码

时间:2012-01-12 19:13:42

标签: javascript jquery jquery-ui jquery-ui-dialog

假设template_A中存在以下代码,弹出一个显示template_B内容的对话框。

html在对话框中显示得很好,但不幸的是,template_B中包含的任何javascript都没有运行。

Jquery& Jquery-ui包含在template_A中。

template_B没有javascript-includes,因为它由属于template_A的div表示。

模板_A中的

JS:

var win = $(document.createElement('div'));
$.get(url, function (html) {
  win.html(html);
  win.dialog("open");
});

template_B:

<div id="content">

  <script type="text/javascript">
    $(function () {
      // this never executes,
      // js-debugging won't enter this part...
    });
  </script>

</div>

1 个答案:

答案 0 :(得分:1)

您正在谈论的代码块仅在DOM完成加载后才会触发。只是将html插入现有文档不会触发此事件。如果您从此请求获得了大量HTML,也许您应该将其分解为两个单独的请求,如下所示:

var win = $(document.createElement('div'));
$.get(urlA, function (html) {
  win.html(html);
  $.getStript(urlB);
  win.dialog("open");
});

urlA请求HTML和urlB请求Javascript。