这与我前几天提出的问题非常相似,但我的页面代码变得更加复杂,我需要重新审视它。我一直在使用以下代码:
$('#myLink').click(function() {
$('#myImg').attr('src', 'newImg.jpg');
setTimeout(function() { $('#myImg').attr('src', 'oldImg.jpg'); }, 15000);
});
要在单击链接时将图像替换设定的时间段(15秒),请在15秒后恢复为原始图像。
但是现在,我想在点击链接时(除了替换图像之外)运行一段javascript,并且仅在点击链接时(它与15秒图像相关)然后让js代码在15秒后消失...但是我不确定如何让jquery将js代码发送到页面中...基本上我只是希望jQuery将这些代码“回显”到15下面的页面上第二次我在那里,但我不知道jquery如何格式化这个“回声”。
这个问题有意义吗?
interval = 500;
imgsrc = "webcam/image.jpg";
function Refresh() {
tmp = new Date();
tmp = "?" + tmp.getTime();
document.images["image1"].src = imgsrc + tmp;
setTimeout("Refresh()", interval);
}
刷新(); 它是网络摄像头的脚本。基本上它每半秒拍一张新照片并在页面上替换它。你必须原谅我,我是jquery的新手,我不知道如何使这个脚本在jquery上下文中工作。
对不起,我的解释很糟糕。这就是我需要一步一步发生的事情:
仅在15秒的间隔期间我才开始运行网络摄像头刷新脚本,否则会浪费带宽甚至没有显示的元素。对不起,感到困惑。
答案 0 :(得分:2)
这应该为你做的伎俩...(虽然你可能会尝试检测他们是否离开了页面(我无法就如何做到这一点给你任何建议))
var myLink = $('#myLink');
var myImg = $('#myImg');
myLink.click(function() {
// makes sure this can only run once per 15sec
myLink.attr('disabled', 'disabled');
var start = new Date();
var interval = null;
function refresh() {
var current = new Date();
if (current.getTime() - start.getTime() > 15000) { // max time in miliseconds
//stops refresh
clearInterval(interval);
// lets them click on the link again
myLink.attr('disabled', '');
// resets the old img
myImg.attr('src', 'oldImg.jpg');
} else {
// should be obvious
myImg.attr('src', 'webcam/image.jpg?t=' + current.getTime());
}
}
// refreshes page
interval = setInterval(refresh, 500);
refresh(); // don't wait for the first 1/2 second
});