У меня есть страница, на которой пользователь добавляет и редактирует список книг. Вы можете перемещать их, добавлять новые книги, редактировать книги уже там ...Невозможно клонировать диалоги jQueryUI
Чтобы добавить или отредактировать каждую отдельную книгу, появится диалоговое окно с формой с несколькими полями ввода: название, автор, жанр и т. Д. I также есть плагин Watermark, поместивший текст по умолчанию в каждое из этих полей.
Вместо того, чтобы повторять и перезапускать каждое из этих полей ПОСЛЕ каждой книги, сохраненной в главном списке, и диалог закрыт, чтобы получить форму для следующей книги, я думаю, что это будет проще просто использовать клон формы каждый раз, а затем просто выбросить клона после каждого сохранения:
$("#addEditBook").click(function() {
$("#bookForm").clone().removeAttr("id").attr("id", "clonedBookForm").insertAfter("#bookForm");
$("#clonedBookForm").dialog("open");
return false;
});
в FireBug, я вижу #clonedBookForm
создается. И он идентичен #bookForm
ниже.
Но следующая строка, .dialog("open");
выдает эту ошибку:
uncaught exception: cannot call methods on dialog prior to initialization; attempted to call method 'open'
Примечание: Я знаю
$("#clonedBookForm").dialog({
autoOpen: false,
modal: true,
resizable: false,
draggable: false,
etc., etc.
... работает, потому что он отлично работает с оригинальным #bookForm
. Что-то о событиях, которые не клонируются?
Я хотел бы получить эту разобраться, потому что я бы себе одноразовая клоны вещей была бы реальная экономия времени ...
Спасибо заранее!
CoolEsh, большое спасибо за то, что нашли время, чтобы помочь. Интересно, могу ли я вас беспокоить: а) изложите свою точку зрения на обернутый контент по сравнению с основной оболочкой. В Firebug я вижу, что #clonedBookForm и #bookForm идентичны - дочерние элементы, данные и все. И б) можете ли вы поделиться ссылкой на шаблоны jQuery? Я googling вокруг но продолжаю находить вещи на JTML, который не звучит как то же самое ... –
a) Давайте посмотрим на мой простой пример здесь: http://jsfiddle.net/SX5b6/1/. Как вы видите, я добавил очень простой диалог. Но если вы посмотрите на него с помощью firebug, мой div с id будет вложен в другой div без id и вы не сможете обрабатывать его параметры; – CoolEsh
b) о шаблонах: я использую их для заполнения системных диалогов, которые позволяют мне не копировать-вставлять html-код каждый раз, когда мне нужен диалог на странице. 'jQuery.template ('templateName', '');' позволяет сохранять шаблон и 'jQuery.tmpl ('templateName', params) .appendTo (someDropdownElement); 'позволяет передавать параметры в шаблон и добавлять html к некоторому элементу. Пожалуйста, прочитайте API jQuery для получения более подробной информации: http://api.jquery.com/?ns0=1&s=tmpl – CoolEsh