上下文:在我的产品网站上,我有一个 Java webstart 应用程序的链接(在多个位置)。
我的目标:防止用户双击,即仅在第一次单击时“触发”,等待 3 秒后再次启用链接。单击时,将链接图像更改为表示应用程序正在启动的内容。
我的解决方案有效,但单击后图像无法可靠更新。注释掉的调试输出为我提供了正确的内容,并且鼠标悬停回调也可以正常工作。
在此处查看它的运行情况:http : //www.auctober.de/beta/(单击“jetzt starten”按钮)。
顺便说一句:如果有人有比虚拟动画更好的延迟调用函数的方法,请告诉我。
JavaScript:
<script type="text/javascript">
<!--
allowClick = true;
linkElements = "a[href='http://www.auctober.de/beta/?startjnlp=true&rand=1249026819']";
$(document).ready(function() {
$('#jnlpLink').mouseover(function() {
if ( allowClick ) {
setImage('images/jetzt_starten2.gif');
}
});
$('#jnlpLink').mouseout(function() {
if ( allowClick ) {
setImage('images/jetzt_starten.gif');
}
});
$(linkElements).click(function(evt) {
if ( ! allowClick ) {
evt.preventDefault();
}
else {
setAllowClick(false);
var altContent = $('#jnlpLink').attr('altContent');
var oldContent = $('#launchImg').attr('src');
setImage(altContent);
$(this).animate({opacity: 1.0}, 3000, "", function() {
setAllowClick(true);
setImage(oldContent);
});
}
});
});
function setAllowClick(flag) {
allowClick = flag;
}
function setImage(imgSrc) {
//$('#debug').html("img:"+imgSrc);
$('#launchImg').attr('src', imgSrc);
}
//-->
</script>