Как добавить jquery .live () в этот код - PullRequest
0 голосов
/ 05 ноября 2010

У меня есть небольшой (и я имею в виду мини) плагин всплывающей подсказки, который я создал, но столкнулся с проблемой.По сути, все работает нормально, если создается на событии dom ready.Однако, если мне нужно (как и я) перенести данные $ ajax на страницу, которая меняет dom, мой плагин больше не работает (по понятным причинам).

Я не совсем знаю, где вПлагин Я бы добавил необходимый код, чтобы он работал правильно (я пытался прикрепить событие live к событиям hover и mousemove, но с искаженными результатами).Я не хочу повторной инициализации кода всплывающей подсказки каждый раз, когда запускается метод $ ajax, так как на странице задействовано довольно много разных.Я бы предпочел подключить к плагину всплывающей подсказки какую-то «живую» функциональность.

В любом случае, полный след можно найти здесь:

http://www.jsfiddle.net/jimibt/FLSXv/

надеюсь, что это где-то колышется / звонит ...

[обновить] для повторной итерации, добавление события live к событиям hover и mousemove вызывает непредсказуемые результаты в моем "реальном' пример.Я ищу альтернативу этому.спасибо ...

Ответы [ 2 ]

2 голосов
/ 05 ноября 2010

При применении всплывающей подсказки также добавьте новый класс, например hasTooltip. Затем, когда вы завершите запрос AJAX, найдите все элементы a, которые не имеют класса hasTooltip, но имеют класс vtip, применены и запустите на них вашу функцию $.tooltip().

Вы можете найти эти новые элементы, например, так:

$('a.vtip:not(a.hasTooltip)');

См. мое обновление к вашему примеру.

1 голос
/ 05 ноября 2010

Это тривиально:

$(this).live("hover", function(e) {
        this.t = this.title;
        this.title = "";
        $("body").append("<p id='tooltip'>" + this.t + "</p>");
        $("#tooltip").hide().css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px").fadeIn(1400);
    }, function() {
        this.title = this.t;
        $("#tooltip").fadeOut('fast').remove();
    });
    $(this).live("mousemove", function(e) {
        $("#tooltip").css("top", (e.pageY - xOffset) + "px").css("left", (e.pageX + yOffset) + "px");
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...