привязка JavaScript к динамически созданному элементу привязки - PullRequest
1 голос
/ 20 июля 2011

Я пытаюсь использовать jquery.qtip для элемента привязки в jquery.datatables.

В основном, как это работает, я добавляю tooltip = "tooltip desc" для элемента привязки,

И в js-файл я поместил следующее:

$('.simpletable a[tooltip]').each(function()

{

  $(this).qtip({

    content: $(this).attr('tooltip'),

    style: 'dark'

  });

});

Он работает только для обычных таблиц данных, но когда источником является ajax, он перестает работать.Я предполагаю, что это потому, что qtip привязан к элементам привязки, как только dom будет готов.Однако в то время Ajax Dom еще не готов.Таким образом, таблицы данных с источником ajax не привязываются к qtip.

Есть ли способ исправить эту проблему?Я пытался найти метод для вызова вышеуказанного js-скрипта после завершения вызова ajax, но я просто не могу понять, как это возможно.

Спасибо,

Frank

Ответы [ 2 ]

3 голосов
/ 21 июля 2011

Благодаря AlienWebguy я узнал о прямом эфире.Его ответ не сработал сразу (может быть, другая версия qtip?), Поэтому для qtip2 Дата: среда, 20 июля 11:31:55 PDT 2011, у меня сработало следующее:

$ ('. Simpletablea [title] '). live (' mouseover ', function (event) {$ (this) .qtip ({

overwrite: false,
show: {
  event: event.type,
  ready: true
}   

}, event);});

Большое спасибо AlienWebguy!Вы не представляете, как я ценю вашу помощь !!

2 голосов
/ 20 июля 2011

Используйте обозреватель привязки, ориентированный на будущее, например live() или delegate(): «Прикрепите обработчик к событию для всех элементов, которые соответствуют текущему селектору, сейчас и в будущем».

$('.simpletable a[tooltip]').each(function()
{
  $(this).live('qtip',function({
    content: $(this).attr('tooltip'),

    style: 'dark'

  });
});

http://api.jquery.com/live/

...