Как выполнить Jquery-код в диалоге, который получил свое содержимое через $ .get - PullRequest
0 голосов
/ 12 января 2012

Предположим, что в template_A существует следующий код, открывающий диалоговое окно, в котором отображается содержимое из template_B.

HTML-код хорошо отображается в диалоговом окне, но, к сожалению, любой JavaScript, включенный в template_B, не запускается.

Jquery & Jquery-ui включены в template_A.

template_B не содержит javascript-include, поскольку он представлен div, принадлежащим template_A.

JS в template_A:

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 Ответ

1 голос
/ 12 января 2012

Блок кода, о котором вы говорите, срабатывает только после завершения загрузки DOM.Простая вставка HTML в существующий документ не вызывает этого события.Если по этому запросу вы получаете много HTML, возможно, вам следует разбить его на два отдельных запроса, например:

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

Где urlA запрашивает HTML, а urlB запрашивает Javascript.

...