我正在尝试从每个缩略图加载图像并添加一个Opentip(opentip.org)。
我成功添加了标记并创建了工具提示。唯一的问题是只显示数组中的最后一个值 - 对于每个缩略图。
以下是指向一种产品的链接:http://www.inusual.com.br/poltrona-evo.html
原始HTML
<div class="ca-thumbnails"> <div> <img src="xxx"> </div> <div> <img src="xxx"> </div> </div>
我随机添加了。一切正常,并正确添加到每个img。只有图像显示没问题。
var tip = $$('.ca-thumbnails div img');
tip.each(function(s, index) {
src = s.readAttribute('src');
function image() {
return Builder.node('img', { 'src': src });
}
s.wrap('a', { 'class': 'tip', 'onclick':'return false;', 'href': src});
s.up(0).addTip(image, { ajax: false, showEffect: 'appear', showon:'mouseover', className:'glass', containInViewport: true, target: true, stem: true, tipJoint: [ 'center', 'bottom' ], targetJoint: [ 'center', 'top' ] });
我相信函数image()只获取最后一项。
有没有人对此有所了解? 抱歉我的英文。
由于
答案 0 :(得分:1)
当您期待时,image
功能不会被调用。我不是100%确定它为什么没有错误,而是将一个元素传递给addTip,而不是传递对函数的引用(image
)。试试看是否能解决问题:
var tip = $$('.ca-thumbnails div img');
tip.each(function(s, index) {
var src = s.readAttribute('src');
var image = new Element('img', {src: src});
s.wrap('a', { 'class': 'tip', 'onclick':'return false;', 'href': src});
s.up(0).addTip(image, { ajax: false, showEffect: 'appear', showon:'mouseover', className:'glass', containInViewport: true, target: true, stem: true, tipJoint: [ 'center', 'bottom' ], targetJoint: [ 'center', 'top' ] });
});
不要忘记使用var
关键字!我看到你有一个全局image
变量,它可能(或可能不)与为什么这些特定的代码行没有错误并为你提供错误的线索有关。