Получение плагина jQuery для работы с динамически загружаемым (ajax) контентом - PullRequest
0 голосов
/ 29 июня 2010

У меня есть один плагин jQuery (colorbox), который загружает модальное всплывающее окно (с внешним html-файлом). <- работает само собой. У меня есть другой плагин jQuery (jScrollPane), который загружает пользовательские полосы прокрутки для div. <- это тоже отлично работает само по себе. Оба имеют компонент JS и компонент CSS. </p>

Пока мой процесс:

  1. Я попытался загрузить и инициализировать полосу прокрутки jQuery и CSS из вечного html (всплывающего окна), и мой div исчез.
  2. Затем я попытался загрузить полосу прокрутки jQuery в родительском окне и инициализировать ее в обратном вызове colorbox ... на этот раз мой div не исчез, но полоса прокрутки и стрелки (даже стандартные стрелки ОС) исчезли. 1008 *
  3. Наконец, я поместил полосу прокрутки CSS в теги <style> и поместил ее в теги <body> вечного HTML-файла. Это работает во всех основных браузерах, однако теперь вы не можете выйти из всплывающего окна. Arg!

Так что я думаю, что мой вопрос: как вы получаете плагины jQuery и их CSS-файлы для инициализации на динамически загружаемом контенте? Что происходит (включая саму библиотеку jQuery)?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 29 июня 2010

Нашел решение ....

Мой вопрос был конкретно об интеграции colorbox (плагин лайтбокса jQuery) с jScrollPane (плагин пользовательской прокрутки jQuery).Мой ajax-вызов для загрузки содержимого с помощью colorbox сработал, однако jScrollPane не удалось инициировать, поскольку требуемый не был загружен (поскольку ajax-вызов не извлекал никакой информации из тегов head).

Если другие переполнители стека сталкиваются с подобной проблемой, то это то, что я сделал, чтобы решить ее: использовал iframes вместо вызова ajax.По электронной почте Ой.Дух.

Я не знаю, является ли colorbox единственным плагином, который извлекает информацию только из тегов body, а не из head, но я думаю, что многие плагины работают таким образом при работе с внешними файлами.Если это ваша проблема, используйте iframes, чтобы убедиться, что данные в вашем теге head извлечены.

Спасибо, переполнение стека anyhoo!Я все еще люблю тебя.

0 голосов
/ 29 июня 2010

Если вы используете всплывающее окно типа "window.open", то я бы сказал, сделайте его немного проще и перенесите его на свою страницу, так как диалоговое окно JQueryUI, извлекающее внешний HTML-файл, является содержимым, загружающим его в DIV и доступны в общем контексте страницы, наследуя JQuery и CSS. Простая форма этого должна быть такой:

$("#id").load(url).dialog(); 

Где #id - это DIV, который скрыт и будет содержать данные вашего диалога, а URL - это внешний URL-адрес html-файла в вашем всплывающем окне.

...