Контекст: на моем веб-сайте продукта есть ссылка на приложение веб-запуска Java (в нескольких местах).
Моя цель: запретить пользователям двойной щелчок, i. е. только "огонь" при первом нажатии, подождите 3 секунды, прежде чем снова включить ссылку. При нажатии измените изображение ссылки на то, что означает, что приложение запускается.
Мое решение работает, за исключением того, что изображение не обновляется надежно после нажатия. Закомментированные выходные данные отладки дают мне правильное содержимое, и обратные вызовы при наведении курсора мыши также работают правильно.
Смотрите его здесь: http://www.auctober.de/beta/ (нажмите кнопку «Стартовый джет»).
Кстати: если у кого-то есть лучший способ вызывать функцию с задержкой, чем эта пустышка, дайте мне знать.
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>