我使用qtip2 jQuery插件来显示图像地图的工具提示。所有区域都分配了ID,每个工具提示的内容的ID为" area-id" +" -text"。 例如:
<area id="1" coords="159,32,255,2" shape="poly" href="#" />
<p id="1-text">Lorem ipsum dolor sit amet</p>
我想要实现的是通过获取区域的ID并添加&#34; -text&#34;来获取每个工具提示的内容。后缀。以下是插件语法的示例:http://jsfiddle.net/craga89/G2sqU/
现在我有这个:
jQuery(document).ready(function () {
var myId = jQuery(this).attr('id');
jQuery('area').qtip({
content: {
text: ('#' + myId + '-text')
},
position: {
style: {
classes: 'dealer'
},
target: 'mouse',
adjust: {
mouse: false
}
}
});
});
但工具提示内容显示为&#34; #undefined-text&#34; - 显然我的方法不起作用?
有没有人有如何修复上面的代码?
答案 0 :(得分:2)
this
是DOM就绪处理程序中的document
对象,因此attr('id')
的{{1}}将被取消定义。
您需要使用document
循环将qtip
应用于每个area
,以便为每个each
元素设置一个上下文。然后,您可以为每个area
应用qtip
适当的设置。
area
<强>更新强>
注意:您可以使用以下快捷方式 DOM ready handler 来提供本地作用域jQuery(document).ready(function () {
jQuery('area').each(function () {
var myId = jQuery(this).attr('id');
jQuery(this).qtip({
content: {
text: $('#' + myId + '-text').text()
},
position: {
style: {
classes: 'dealer'
},
target: 'mouse',
adjust: {
mouse: false
}
}
});
});
});
,并将您的代码缩短为$
的传统jQuery使用(无冲突) :
$