| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Применение библиотек > [jQuery]подключение validate.js |
| Автор: Aver78 19.3.2008, 03:12 |
| Суть проблемы такова. существует 3 дива один под другим. Во время первого обращения к сайту создаются все 3 дива, контент в 1 и подключаются все плгины jquery. Потом используя плагин jquery.ajaxContent.js при клике на линке в 1 диве загружается контент 2-ого. С линков 2 дива также грузиться 3. В 3 существует форма к которой нужно подключить jquery.validate.js. Так вот как я ни бьюсь плагин не подключается. То что созданная функция для данной формы работает - 100%, проверял. Похоже проблема именно в том, что динамически созданные элементы jquery не учитываются(по крайней мере как обычно). В общем довольно сумбурно объяснил, но кто сталкивался с такой проблемой - думаю поймет. |
| Автор: ksnk 19.3.2008, 17:03 |
| Поробуй подключить плагин http://plugins.jquery.com/project/livequery. Если не поможет - бросай сюда куски кода... |
| Автор: Aver78 21.3.2008, 13:46 |
| Вроде бы то что надо, но никак не пойму синтаксис. Везде примеры на click, а я никак не пойму аналогию. Попробую разобраться ( |
| Автор: Aver78 21.3.2008, 14:07 |
| Скину, заодно, и функцию которую надо запустить, расчитываю на совет. $(function() { var options = { target: '#admin_modul_work' }; $('#edit_admin').validate ({ submitHandler: function(form) { $(form).ajaxSubmit(options); }, rules: { email2: { required: true, minlength: 5, maxlength: 12, email: true }}, messages: { email2: { required: 'Укажите свое имя!', minlength: 'Не менее 5 символов', maxlength: 'Не более 12 символов', email: 'Сие должно быть мылом' }} }); }); |
| Автор: ksnk 21.3.2008, 15:34 | ||
В этом случае, наверное, проще написать как-то так
Совет с liveQuery был в этом случае, не очень удачным... :-( |
| Автор: Aver78 21.3.2008, 17:51 |
| Мне кажется можно как то live подключить, ну да ладно, бог с ним пока что. Переведу вопрос в другую плоскость. файл 1 - подключение библиотек и плагинов jquery. фалй 2 - классы php файл 3 - непосредственно исполнение методов подлюченных классов. Если я загоняю эту функция в файл 3, напрямую в php код, то все замечательно, а если подключаю ее из внешенего файла echo "<script type='text/javascript' src='script.js'></script>"; то перестают работать ВСЕ методй jquery. В чем тут косяк ? Можно конечно и так оставить, но не эстетично и не наглядно. |
| Автор: Aver78 23.3.2008, 01:00 |
| Я тоже так думал. Но вот есть. При чем не работает не только функция ассоциированная с данной формой, но отваливается функция которая выводит эту форму в определенный див, то есть просто вызывается этот скрип. В общем jquery падает полностью. Кстати, такая же фигня была если я при обращении ajax заново производил подключение скриптов. Привожу пример. файл 1 echo "<script type=\"text/javascript\" src=\"../include/jquery/jquery.latest.js\"></script>"; echo "<script type=\"text/javascript\" src=\"../include/jquery/jquery.ajaxContent.js\"></script>"; <div id=n1> ссылка вызывающая файл 2, результат работы которого загружается при момощи jquery.ajaxContent.js в див nn2 </div> <div id=n2> (сюда будет загружен результат работы файла 2) </div> файл 2 echo "<script type=\"text/javascript\" src=\"../include/jquery/jquery.latest.js\"></script>"; echo "<script type=\"text/javascript\" src=\"../include/script.js\"></script>"; echo "Результат"; Так вот, если запускать в таком виде, то файл 2 будет вызван, как будто по обычной ссылке <a href="http://файл2">Файл 2</a> А если убрать реконект скриптов, то все прекрасно загрузиться в див. В чем проблема я не догоняю. |
| Автор: ksnk 23.3.2008, 08:34 |
| А зачем jquery подключается второй раз? |
| Автор: Aver78 23.3.2008, 13:31 |
| Ну это так, к примеру. файл 2 echo "<script type=\"text/javascript\" src=\"../include/script.js\"></script>"; echo "Результат"; Пусть будет так. Результат один и тот же. |
| Автор: ksnk 23.3.2008, 16:37 |
| Боюсь, что никак... в подключаемом html не должно быть тегов script. Возможно и есть плагины, которые парсят входящий текст, но мне они неизвестны... Хм... ерунда, однако... |
| Автор: Aver78 23.3.2008, 17:31 |
| Дело в том, что я подключал таким образом, правда давно уже и не помню возникала ли такая проблема. Но все работало. |
| Автор: ksnk 23.3.2008, 17:53 |
| Вообще-то да, должно работать... Может ошибки в тексте? FireBug ничего не говорит плохого? |
| Автор: Aver78 23.3.2008, 18:22 |
| Хм, я забыл одну маленькую, но существенную деталь. Данный код не работает только в опере. Firefox и IE кушают без проблем. Просто у меня приоритетный браузер опера, вот и забыл указать. Но проблема остается проблемой. Opera 9.26 |
| Автор: ksnk 23.3.2008, 19:09 | ||||
вот такое работает в Опере
test5.html
Добавлено через 28 секунд Opera 9.26 |
| Автор: Aver78 24.3.2008, 02:28 |
| Забавные глюки продолжаются. Использовал пример выше для обновления 2 дива после срабатывания формы. Все замечательно работает... но, 1 раз. То бишь див обновляется и juqery опять падает. |
| Автор: ksnk 24.3.2008, 08:02 |
| как падает, куда падает, с какой высоты? FireBug помогает? Если присмотреться к "коду выше", то можно понять, что форма ничего никуда разумно переслать не в состоянии, ответной части с стороны сервера у нее нет... |
| Автор: Aver78 24.3.2008, 16:41 | ||
Этот код вызызвается в файле ответа формы. Див формы обновляется этим файлом, а этот кусок обновляет другой див. Так вот после этого вызова jquery умирает. |