Типси плагин jquery для динамических живых событий не работает - PullRequest
6 голосов
/ 22 октября 2011

Я использую типичный плагин jquery для создания всплывающих подсказок для динамически появляющихся элементов.

Всплывающие подсказки работают с нединамическими элементами, поэтому я определенно включил все, что мне нужно,Я использую jquery 1.5.1

Это мой код jquery: $('.voted-user-image').tipsy({gravity:'s', live: true});

Это HTML-код элемента ссылки на изображение, который динамически отображается в элементе div после нажатия на ссылку, котораязапускает AJAX-запрос:

<a href="/profiles/2" class="voted-user-image" title="Test">
    <img alt="Justin meltzer" src="/system/photos/2/tiny/Justin Meltzer.jpeg?1306836552">
</a>`

Как мне заставить этот плагин всплывающей подсказки работать?

Ответы [ 5 ]

10 голосов
/ 25 октября 2011

Можете ли вы попробовать этот код:

$('a.voted-user-image').tipsy({live: true});

Кажется, что неправильный вызов плагина каждый раз, когда вы добавляете контент

1 голос
/ 23 января 2017
function initTipsy(){
    $(function(){ $('.tips').tipsy({gravity: 's',html: true}); });
    $(function(){ $('.tips-right').tipsy({gravity: 'w',html: true}); });
    $(function(){ $('.tips-left').tipsy({gravity: 'e',html: true}); });
    $(function(){ $('.tips-bottom').tipsy({gravity: 'n',html: true}); });
}

У меня есть эта функция, которую я вызываю в main.js, которая работает для всего моего проекта.Это позволяет мне добавлять подсказки к любому статическому элементу.У меня была такая же проблема с динамическими элементами, и я нашел решение снова вызвать initTipsy после добавления нового элемента в html.Я знаю, что это не очень хорошее решение, но оно работает точно.Надеюсь, это кому-нибудь поможет.

0 голосов
/ 18 марта 2013

Не уверен, почему за ответ Дельфина проголосовали и даже наградили бонусную репутацию. Он предлагает использовать опцию jQuery live, но это уже используется в коде, представленном оригинальным постером (неотредактированным). Очевидно, что вариант не сработал.

Чтобы ответить на исходное сообщение: опция live в плагине tipsy, похоже, не очень хорошо работает со всеми версиями jQuery. Версия 1.7.1 была подтверждена для работы, поэтому неплохо было бы обновить jQuery.

0 голосов
/ 29 октября 2011

Должно работать нормально ..

посмотрите пример .. http://jsfiddle.net/gaby/3pAue/2/ ( использует типсы и 1.5.1 jQuery )

Ошибка должна лежать где-то еще .. убедитесь, что ваш html действителен ( тот, что принес ajax, и он действителен для размещения там, где вы его поместите .. )

0 голосов
/ 25 октября 2011

Я просто снова вызвал плагин в теге script в div, который обработал запрос AJAX. Это сработало.

...