|
|
|
Применение двух плагинов jQuery на одной странице
|
|||
|---|---|---|---|
|
#18+
Я только начинаю пользоваться jQuery, познания в области JavaScript начальные - надеюсь на понимание. Вопрос следующий: - делаю html страничку с галереей и горизонтальным выпадающим (анимированным) меню. Галерея простая, просто таблица в каждой ячейке ссылка в виде картинки. При клике на любую из ссылок - появляется всплывающее окно с некоторым текстом. Для анимированного меню использую один плагин, для всплывающих окон - второй. Выглядит это примерно так: <script type="text/javascript" src="js/jQuery.js"></script> -- библиотека jQuery <script type="text/javascript" src="js/interface.js"></script> -- библиотека для всплывающих окон <script type="text/javascript" src="js/popup.js"></script> -- скрпит jQuery для всплывающих окон <script type="text/javascript" src="js/superfish.js"></script> -- библиотека для анимированного меню <script type="text/javascript" src="js/site.js"></script> -- скрипт jQuery для анимированного меню В файлах js/site.js и js/popup.js код начинается с одного и того же события: $(document).ready( function() {... Следовательно, если порядок перечисления файлов JavaScript будет таким, как указано выше, то при загрузке страницы, работать будет только всплывающие окна (эти файлы включены раньше чем файлы анимированного меню). Следовательно если поменять порядок подключения файлов, то начнет работать только анимированное меню, а всплывающие окна нет. Как я понимаю, проблема именно в том, что файлы js/site.js и js/popup.js содержат одну и туже директиву $(document).ready, и работает только тот файл, который был указан первым по порядку в заголовке страницы. Как слить воедино файлы js/site.js и js/popup.js? Или может быть нужно просто их как-то по другому подключать в заголовке страницы? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 18:02 |
|
||
|
Применение двух плагинов jQuery на одной странице
|
|||
|---|---|---|---|
|
#18+
byverkaЯ только начинаю пользоваться jQuery, познания в области JavaScript начальные - надеюсь на понимание Изучите DOM, ну и немножко яваскрипт (яваскрипт - самое простое, что можно за пару дней выучить). Увы, без этого жквери не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 20:48 |
|
||
|
Применение двух плагинов jQuery на одной странице
|
|||
|---|---|---|---|
|
#18+
ShSergebyverkaЯ только начинаю пользоваться jQuery, познания в области JavaScript начальные - надеюсь на понимание Изучите DOM, ну и немножко яваскрипт (яваскрипт - самое простое, что можно за пару дней выучить). Увы, без этого жквери не работает. А как вы думаете, если я не изучала объектную модель DOM и яваскрипт хотя бы на начальном уровне - у меня заработало и анимированное меню и всплывающие окна? Я прошу только совета или подсказки, как хотите, почему не подключается плагин? Если вы знаете причину, почему бы не написать ее, а не отправлять учить мат часть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 09:36 |
|
||
|
Применение двух плагинов jQuery на одной странице
|
|||
|---|---|---|---|
|
#18+
byverkaShSergebyverkaЯ только начинаю пользоваться jQuery, познания в области JavaScript начальные - надеюсь на понимание Изучите DOM, ну и немножко яваскрипт (яваскрипт - самое простое, что можно за пару дней выучить). Увы, без этого жквери не работает. А как вы думаете, если я не изучала объектную модель DOM и яваскрипт хотя бы на начальном уровне - у меня заработало и анимированное меню и всплывающие окна? Я прошу только совета или подсказки, как хотите, почему не подключается плагин? Если вы знаете причину, почему бы не написать ее, а не отправлять учить мат часть? Мат. часть никогда лишней не будет, особенно, если вы задает вопросы про $(document).ready() - то вы даже не удосужились прочитать мануал jQuery и назначение этой функции. Ну да ладно. $(document).ready() выполняет то, что записано в скобках, как только будет полностью загружена DOM-модель документа (AFAIK, это не обязательно полная загрузка документа со всеми изображениями). Несколько вызовов к этой функции просто последовательно выполнят то, что будет написано в скобках у каждого вызова - т. е. тут проблемы нет. Скорее всего проблема в плагинах - они недостаточно хорошо спроектированы и автоматически работать друг с другом не умеют. Для начала расскажите, откуда вы скачали плагины, чтобы было ясно, о чем речь. + Выложите побольше кода - того, где эти плагины вы используете и где не работает больше одного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 10:33 |
|
||
|
Применение двух плагинов jQuery на одной странице
|
|||
|---|---|---|---|
|
#18+
Ну с чего вы взяли что я не знаю как работает функция $(document).ready... Тяжело новому человеку в бою. Функция ready() ждет пока загрузиться весь HTML и после этого запускает все скрипты, не дожидаясь загрузки картинок и роликов. Это мне известно, и мне так же казалось что оба скрипта, ожидающие загрузки HTML нормально сработают вместе или поочередно, но как бы не так. Скрипты модального окна были взяты здесь: http://www.ruseller.com/lessons.php?rub=32&id=178 Скрипты анимированного меню взяты из книжки Дэвид Макфарланд "Java Script подробное руководство", поэтому приведу здесь только js код, который непосредственно рулит анимацией меню: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Видимо я что-то упускаю, поэтому и не работают оба плагина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 11:03 |
|
||
|
Применение двух плагинов jQuery на одной странице
|
|||
|---|---|---|---|
|
#18+
Еще хочу уточнить, отдельно каждый плагин работает без сучка и задоринки, то есть если на транице есть только меню или только модальные окна. Как только я их соединяю, работать хочет только один. Причем Java Script в случае их совместной работы реагирует на совершенно разные объекты, меню реагирует на действия со списоком, окно реагирует на ссылки в виде картинок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 11:16 |
|
||
|
Применение двух плагинов jQuery на одной странице
|
|||
|---|---|---|---|
|
#18+
Я не спец в жквери, но у меня подозрение, что эти самые $(document).ready(function( ){} просто переопределяют друг друга, поэтому и не работает. Хотя, могу ошибиться. Поэтому файрбаг в помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 11:25 |
|
||
|
Применение двух плагинов jQuery на одной странице
|
|||
|---|---|---|---|
|
#18+
ShSergeЯ не спец в жквери, но у меня подозрение, что эти самые $(document).ready(function( ){} просто переопределяют друг друга, поэтому и не работает. Хотя, могу ошибиться. Поэтому файрбаг в помощь. Спасибо! Придется правда установить firefox, но для работы все равно будет полезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 12:05 |
|
||
|
Применение двух плагинов jQuery на одной странице
|
|||
|---|---|---|---|
|
#18+
ShSergeЯ не спец в жквери, но у меня подозрение, что эти самые $(document).ready(function( ){} просто переопределяют друг друга, поэтому и не работает. Хотя, могу ошибиться. Поэтому файрбаг в помощь. Не, это просто бинд на эвент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 12:23 |
|
||
|
Применение двух плагинов jQuery на одной странице
|
|||
|---|---|---|---|
|
#18+
an0nymShSergeЯ не спец в жквери, но у меня подозрение, что эти самые $(document).ready(function( ){} просто переопределяют друг друга, поэтому и не работает. Хотя, могу ошибиться. Поэтому файрбаг в помощь. Не, это просто бинд на эвент. То есть вы хотите сказать что переопределением функции ready() проблем нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 13:19 |
|
||
|
Применение двух плагинов jQuery на одной странице
|
|||
|---|---|---|---|
|
#18+
Похоже я разобралась в чем дело. В самом начале я написала, что у меня в качестве библиотеки jQuery указан файл js/jQuery.js. Его я скачала вместе с исходниками для всплывающих окон. Для анимированного меню, если я его делаю отдельно от модальных окно, я использую библиотеку с сайта разработчиков самого jQuery: http://code.jquery.com/jquery-latest.js. Попробовав обе эти библиотеки одновременно в одном HTML, я поняла, что если использовать только jQuery.js - отлично работают модальные окна, а горизонтальное меню оказывается работает, но реагирует не на события onmouseover и onmouseout, а только если кликнуть на элементе меню, то есть на событие onClick. Оно и понятно, библиотека jQuery.js была скачана вместе с исходниками для модальных окон, поэтому работа анимированного меню и не гарантировалась. Если подключать общедоступную библиотеку с сайта разработчиков http://code.jquery.com/jquery-latest.js, работает только анимированное меню, при этом всплывающие окна вообще никак не работают. То есть этот вариант еще хуже. В первом меню хоть как-то шевелиться. Вывод один, нужна библиотека jquery.js которая бы поддерживала и окна и меню. Для этого похоже надо каким-то образом соединить обе имеющиеся уже библиотеки, или найти десять отличий. Что мне кажется нереальным. Вот теперь не знаю, от чего отказаться, от jQuery вообще или от одновременного использования и окон и меню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 14:11 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=270&tid=1453898]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 403ms |

| 0 / 0 |
