Как я могу заставить функцию расширителя работать с динамическими данными jQuery? - PullRequest
1 голос
/ 07 июля 2011

Спасибо, что взглянули на этот вопрос.Я пытаюсь заставить функцию расширителя jQuery работать в моем пользовательском интерфейсе.

Проблема в том, что она работает, когда данные жестко закодированы в HTML, но не работает, когда данные динамически размещаются с помощью jQuery.

Я создал 4 слайда, чтобы лучше проиллюстрировать проблему (изображения см. Ниже):

СЛАЙД 1: Пользовательский интерфейс, содержащий небольшой текст, который я пытаюсь развернуть в каждомпоказан модуль.

СЛАЙД 2: Структура div, настроенная для jQuery для заполнения даты в реальном времени

СЛАЙД 3: Chrome Inspector, показывающий данныединамически удерживается в памяти (не в источнике HTML)

СЛАЙД 4: Функция расширения работает, когда я жестко кодирую это в HTML:

<div class="tags-hidden"><p>some data...</p></div>

ВотПроисхождение функции расширения: http://plugins.learningjquery.com/expander/

Большое, большое спасибо за любую помощь или совет, который вы могли бы предложить.Вот слайды:

Slide 1

Slide 2

Slide 3

Slide 4

РЕДАКТИРОВАТЬ 1 -Вот новый код, основанный на вашем предложении использовать .live () ... Кажется, он не вызывается при нажатии:

<script type="text/javascript">
$(document).ready(function() {
$('.div.tags-hidden p').live('click', function() {
    $('div.tags-hidden p').expander({
      slicePoint:       80,  // default is 100
      expandText:         '[...]', // default is 'read more...'
      collapseTimer:    5000, // re-collapses after 5 seconds; default is 0, so no re-collapsing
      userCollapseText: '[^]'  // default is '[collapse expanded text]'
  });
});
</script>

Ответы [ 2 ]

1 голос
/ 07 июля 2011

Я думаю, вы хотите использовать .live () для элементов, которые не отображаются при визуализации страницы. Взгляните сюда http://api.jquery.com/live/

1 голос
/ 07 июля 2011

Вам, вероятно, придется повторно подключить модуль расширения после загрузки вашего контента.Например, если вы загружаете свой контент динамически с помощью вызовов ajax, вам нужно будет снова вызвать $('div.tags-hidden p').expander() после завершения загрузки ajax.

...