用于动态实时事件的Tipsy jquery插件不工作
我正在使用创建动态显示元素的工具提示 工具提示适用于非动态元素,因此我肯定包含了我需要的所有内容。我正在使用jQuery1.5.1 这是我的jquery代码:用于动态实时事件的Tipsy jquery插件不工作,jquery,plugins,jquery-plugins,tooltip,tipsy,Jquery,Plugins,Jquery Plugins,Tooltip,Tipsy,我正在使用创建动态显示元素的工具提示 工具提示适用于非动态元素,因此我肯定包含了我需要的所有内容。我正在使用jQuery1.5.1 这是我的jquery代码:$('.voted user image').tipsy({gravity:'s',live:true}) 这是图像链接元素的html,单击链接触发AJAX请求后,图像链接元素会动态显示在div中: <a href="/profiles/2" class="voted-user-image" title="Test">
$('.voted user image').tipsy({gravity:'s',live:true})代码>
这是图像链接元素的html,单击链接触发AJAX请求后,图像链接元素会动态显示在div中:
<a href="/profiles/2" class="voted-user-image" title="Test">
<img alt="Justin meltzer" src="/system/photos/2/tiny/Justin Meltzer.jpeg?1306836552">
</a>`
`
如何让这个工具提示插件工作?我刚刚在AJAX请求呈现的div中的脚本中再次调用了该插件。成功了。你能试试下面的代码吗:
$('a.voted-user-image').tipsy({live: true});
每次添加内容时调用插件似乎都是错误的:)它应该可以正常工作
请检查示例。。(使用tipsy和1.5.1 jQuery)
错误一定在别的地方。。确保你的html是有效的(由ajax带来的,并且放在你放它的地方是有效的)不知道为什么海豚的答案会被投票,甚至会获得额外的声誉。他建议使用jQuery tipsy的live
选项,但这已经在原始海报(未编辑)呈现的代码中使用。显然,这一选择似乎没有奏效
回答原始帖子:tipsy插件的live
选项似乎并不适用于所有版本的jQuery。版本1.7.1已经确认可以工作,所以升级jQuery可能是个好主意
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。我知道这不是一个很好的解决方案,但它确实有效。
希望这对某些人有所帮助。不幸的是,从链接中删除标题后没有javascript错误。插件依赖于标题属性,这就是它将文本从中拉到工具提示中的位置。我对你对自己的问题给出的答案投了否决票,这对我来说很奇怪。;-)然而,这不是正确的答案,并且会在性能和代码可维护性方面产生负面影响。海豚说得对。live()本身被认为效率相对较低(例如,与.delegate()相比),但它只需一个绑定就可以正常完成任务。它是插件选项的一部分,不需要额外的麻烦。我在添加live时遇到了一个问题:true。在控制台中,它说“uncaughtypeerror:Object[Object Object]没有方法‘live’”。有没有其他方法来解决这个问题,在新添加的div上添加一个酒鬼?