将 javascript 绑定到动态创建的锚元素

发布于 2024-11-25 06:42:46 字数 512 浏览 1 评论 0原文

我正在尝试使用 jquery.qtip 来作为 jquery.datatables 中的锚元素。

基本上它的工作原理是在锚元素上,我将 tooltip="tooltip desc" 放置到锚元素上。

在 js 文件中,我添加了以下内容:

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

{

  $(this).qtip({

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

    style: 'dark'

  });

});

它仅适用于常规数据表,但当源是 ajax 时,它会停止工作。我猜这是因为 dom 准备好后,qtip 就会绑定到锚元素。然而,当时ajax dom还没有准备好。因此,具有 ajax 源的数据表不会绑定到 qtip。

有办法解决这个问题吗? 我一直在尝试找到一种方法来在 ajax 调用完成后调用上述 js 脚本,但我似乎不知道如何实现。

谢谢,

弗兰克

I'm trying to use jquery.qtip to an anchor element in jquery.datatables.

Basically how it works is that on the anchor elements, I put an tooltip="tooltip desc" to anchor element.

And in js file, I put the following:

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

{

  $(this).qtip({

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

    style: 'dark'

  });

});

It works for just regular datatables but when the source is an ajax, it stops working. I'm guessing it's because qtip is bound to the anchor elements as soon as the dom is ready. However, at that time, ajax dom is not yet ready. Thus datatables with ajax source does not get get bound to the qtip.

Is there a way to fix this problem?
I've been trying to find a method to call the above js script after the ajax call is completed but I just can't seem to find out how if it's possible.

Thanks,

Frank

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不离久伴 2024-12-02 06:42:46

感谢AlienWebguy,我了解了live。他的答案并没有立即起作用(可能是不同的 qtip 版本?),因此对于 qtip2 日期:2011 年太平洋夏令时 7 月 20 日星期三 11:31:55,以下内容对我有用:

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

覆盖:假,
展示: {
  事件:事件.类型,
  准备好:正确
}   

},事件);
});

非常感谢 AlienWebguy!你不知道我是多么感谢你的帮助!

Thanks to AlienWebguy, I learned about live. His answer didn't work right away (maybe different qtip version?) so for qtip2 Date: Wed Jul 20 11:31:55 PDT 2011, following worked for me:

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

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

}, event);
});

Thank you so much AlienWebguy! You have no idea how much I appreciate your help!!

旧情别恋 2024-12-02 06:42:46

使用面向未来的绑定观察器,例如 live()delegate():“将处理程序附加到与当前选择器匹配的所有元素的事件,现在和将来未来。”

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

    style: 'dark'

  });
});

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

Use a future-proof binding observer such as live() or delegate(): "Attach a handler to the event for all elements which match the current selector, now and in the future."

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

    style: 'dark'

  });
});

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文