【发布时间】:2012-05-29 20:01:44
【问题描述】:
我正在使用tipsy plugin
如果有人将鼠标悬停在他的链接上,我想显示 用户 的图像。现在该链接有一个 id,图像通过该 id 存储在服务器中。例如,如果 id 是 4 那么图像将是 4.jpg 所以我使用这段代码来显示工具提示: p>
$('.tipsy').tipsy({
html: true,
gravity : 'e',
title: function() {
var i=0;
alert(++i + " first");
var imgPath='<img height="50" width="50" src="dp/' + $(this).attr('id') + '.jpg" />';
try{
imgPath=$(imgPath).error(function() {
alert(++i + " middle");
//imgPath='<img height="50" width="50" src="dp/no-image.jpg" />';
});
}catch(err){
alert('inside catch');
}
alert(++i + " last");
return imgPath;
}
});
但 imgPath 永远不会出现 但从技术上讲如果 error 存在,则将采用 noimage.jpg 的值,但每次它都会向我显示带有 src 的 img 为
还有一件事我注意到了......没有错误时的顺序是:
- alert(++i + "first");
-
alert(++i + "last");
以及出现错误时的顺序:
- 警报(++i + "第一");
- 警报(++i + "最后");
- alert(++i + "middle");
这是错误的,因为 middle 警报介于 first 和 last
之间【问题讨论】:
-
您的 imgPath 是一个 HTML 字符串。为什么要尝试将其放入 jQUery 对象中?
-
因为我想知道该图像是否存在于服务器中......所以这就是为什么将它放入Jquery对象中调用
error() -
好的,我明白了。您是否尝试删除警报并将其更改为 console.log()?有时警报会导致奇怪的同步问题
-
其 FIRST、LAST、MIDDLE 的顺序相同,这是问题所在,因为 LAST 在 MIDDLE 之前执行,因此 imgPath 未更新