用于动态实时事件的 Tipsy jquery 插件无法正常工作

发布于 2024-12-11 02:43:21 字数 582 浏览 0 评论 0原文

我正在使用 Tipsy jquery 插件 为动态显示的元素创建工具提示。

工具提示适用于非动态元素,因此我肯定包含了我需要的所有内容。我正在使用 jquery 1.5.1

这是我的 jquery 代码: $('.voted-user-image').tipsy({gravity:'s', live: true});

这是单击触发 AJAX 请求的链接后动态显示在 div 中的图像链接元素的 html:

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

How can I get this tooltip plugin to work?

I'm using the tipsy jquery plugin to create tooltips for dynamically appearing elements.

The tooltips work on non-dynamic elements, so I've definitely included everything that I need. I'm using jquery 1.5.1

This is my jquery code: $('.voted-user-image').tipsy({gravity:'s', live: true});

This is the html of an image link element that appears dynamically in a div after a link is clicked that triggers an AJAX request:

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

How can I get this tooltip plugin to work?

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

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

发布评论

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

评论(5

同尘 2024-12-18 02:43:21

你能试试这个代码吗:

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

每次添加内容时调用插件似乎都是错误的:)

Can you try this code:

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

Seems so wrong calling plugin each time you add content :)

筱武穆 2024-12-18 02:43:21
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 中调用了这个函数,该函数适用于我的整个项目。这允许我向任何静态元素添加提示。
我对动态元素也有同样的问题,我找到的解决方案是将新元素附加到 html 后再次调用 initTipsy。我知道这不是一个很好的解决方案,但它肯定有效。
希望对某人有帮助。

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}); });
}

I have this function that I call in my main.js that works for my whole project. This allows me to add tips to any static element.
I had the same problem with dynamic elements and the solution I found is to call initTipsy again after appending the new element to the html. I know this is not a pretty solution, but it works for sure.
Hope that helps somebody.

江心雾 2024-12-18 02:43:21

它应该工作得很好..

检查示例.. http://jsfiddle.net/gaby/3pAue/ 2/ (使用醉酒,和 1.5.1 jQuery)

错误一定在其他地方..确保你的 html 是有效的 (由 ajax 带来的,它是放置在您放置的地方有效..

It should work just fine..

check the example .. http://jsfiddle.net/gaby/3pAue/2/ (uses tipsy,and 1.5.1 jQuery)

The error must lie somewhere else.. make sure your html is valid (the one brought by ajax, and it is valid to be placed where you place it..)

晨曦慕雪 2024-12-18 02:43:21

不知道为什么海豚的回答得到了赞成,甚至奖励了额外的声誉。他建议使用 jQuery Tipsy 的 live 选项,但这已经在原始海报(未经编辑)提供的代码中使用。显然这个选项似乎并没有起到作用。

回答原来的帖子:tipsy 插件的 live 选项似乎并不适用于所有版本的 jQuery。版本 1.7.1 已被证实可以工作,因此升级 jQuery 可能是一个好主意。

Not sure why Dolphin's answer got upvoted and even rewarded bonus reputation. He suggests using the live option of jQuery tipsy, but this is already used in the code presented by the original poster (unedited). Obviously the option did not seem to do the trick.

To answer the original post: the live option of the tipsy plugin does not seem to work well with all versions of jQuery. Version 1.7.1 has been confirmed to work, so upgrading jQuery might be a good idea.

零度° 2024-12-18 02:43:21

我刚刚在 AJAX 请求呈现的 div 中的 script 标记中再次调用了该插件。那行得通。

I just called the plugin again in a script tag in the div that the AJAX request rendered. That worked.

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