jquery-диалог не может использовать jquery-функции - PullRequest
0 голосов
/ 01 марта 2011

Я передаю html, полученный из get-запроса, в мою функцию Jquery-dialog.

Однако внутри диалога я больше не могу использовать никакие jquery-функции, хотя я включил jquery на страницу, вызывающуюдиалоговое окно.

Если я включу его СНОВА в html диалога, кнопка «ок» перестает работать, и все остальные элементы на странице, с которой я вызвал диалог, также не работают после закрытияdialog.

Я бы ожидал, что включения jquery на страницу, которая вызывает диалог, будет достаточно для того, чтобы диалог имел доступ к jquery, но, похоже, это не так.

ВотУ меня есть код:

dialog.js:

var dialogDiv = $(document.createElement('div'));

function myDialogue(content) {
  dialogDiv.html(content);
  dialogDiv.dialog({autoOpen: false, modal: true, buttons: { "ok": function() {
  $(this).dialog("close");
  $(this).dialog("destroy").remove();
} } });
dialogDiv.dialog('open');
dialogDiv.scrollTop(0);
return true;
}

вызов myDialogue =>

main.html:

<script type="text/javascript" src="/path/to/jquery.js"></script>
<script type="text/javascript" src="/path/to/dialog.js"></script>

$.get("/path/to/controller/index", {param: "value"}, function(content) {
  myDialogue(content);
});

возвращенный htmlиз моего контроллера, который передается в диалоговом окне:

<script type="text/javascript">
  $(document).ready(function() {
    $("#edit_div :checkbox").click(function () {
    // this NEVER gets called unless I include jquery again, but 
    // then the ok button and the rest of the page do not work anymore.
    alert("checked!!!");
    });
  });
</script>
<div id="edit_div">
<input type="checkbox" value="mycheck" name="mycheck"/>
....

1 Ответ

0 голосов
/ 01 марта 2011

Событие document.ready, в которое вы поместили свою функцию, вызывается только при первой загрузке страницы.

Вы можете попробовать вынуть функцию из оболочки document.ready и поместить всю *Тег 1005 * в конце разметки, отправляемой с вашего контроллера.

...