Типси плагин jquery для динамических живых событий не работает
Я использую типичный плагин 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 ответов
Я просто позвонил плагин снова в script
тег в div, который обработал запрос AJAX. Это сработало.
Можете ли вы попробовать этот код:
$('a.voted-user-image').tipsy({live: true});
Кажется, так неправильно вызывать плагин каждый раз, когда вы добавляете контент:)
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. Я знаю, что это не очень хорошее решение, но оно работает точно. Надеюсь, это кому-нибудь поможет.
Не уверен, почему за ответ Дельфина проголосовали и даже премировали репутацию. Он предлагает использовать live
опция jQuery tipsy, но она уже используется в коде, представленном оригинальным постером (неотредактированным). Очевидно, что вариант, похоже, не сработал.
Чтобы ответить на оригинальный пост: live
Вариант с плагином tipy, похоже, не очень хорошо работает со всеми версиями jQuery. Версия 1.7.1 подтвердила свою работоспособность, поэтому неплохо было бы обновить jQuery.
Это должно работать просто отлично..
посмотрите пример.. http://jsfiddle.net/gaby/3pAue/2/ (использует типсы и 1.5.1 jQuery)
Ошибка должна лежать где-то еще.. убедитесь, что ваш html действителен (тот, что принес ajax, и он действителен для размещения там, где вы его размещаете..)