这与我前几天问的一个问题非常相似,但我的页面代码已经变得非常复杂,我需要重新访问它。我一直在使用以下代码:
$('#myLink').click(function() {
$('#myImg').attr('src', 'newImg.jpg');
setTimeout(function() { $('#myImg').attr('src', 'oldImg.jpg'); }, 15000);
});
要在单击链接时替换图像一段设定的时间(15秒),然后在15秒后恢复到原始图像。
然而,现在我想在点击链接的时候运行一段javascript代码(除了替换图像),只有当链接被点击时(它与15秒的图像相关),然后让js代码在15 seconds...however之后消失我不确定如何让jquery将js代码发送到page...Basically中我只想让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);
}
Refresh();
这是网络摄像头的脚本。基本上,它每隔半秒拍摄一张新图片,并将其替换到页面上。请原谅我,我是jquery的新手,我不知道如何让这个脚本在jquery上下文中工作。
发布于 2010-05-03 01:14:26
如果您希望以一定的时间间隔运行某项操作,请使用与setTimeout()
类似的setInterval()
。
如果将setInterval()
赋给一个变量,则可以使用该变量“清除”该变量。在您的setTimeout()
函数中执行此操作。
$('#myLink').click(function() {
// Start setInterval which runs a function every n seconds, and assign it to a variable
var runningInterval = setInterval(function() {...}, 500);
$('#myImg').attr('src', 'newImg.jpg');
// After 15 seconds, clear the runningInterval, and reset the image.
setTimeout(function() { clearInterval(runningInterval); $('#myImg').attr('src', 'oldImg.jpg'); }, 15000);
});
编辑:
好的,这就是你的代码。
interval = 500;
imgsrc = "webcam/image.jpg";
// Is this function getting called?
function Refresh() {
tmp = new Date();
tmp = "?" + tmp.getTime();
// You could use jQuery here, just like below.
document.images["image1"].src = imgsrc + tmp;
}
$('#myLink').click(function() {
// Start setInterval which runs your Refresh function every 0.5 seconds, and assign it to a variable
var runningInterval = setInterval(Refresh, interval);
// Display new image
// This line may be unnecessary if the Refresh() function is loading it anyway.
$('#myImg').attr('src', 'newImg.jpg');
// After 15 seconds, clear the runningInterval, and reset the image.
setTimeout(function() { clearInterval(runningInterval); $('#myImg').attr('src', 'oldImg.jpg'); }, 15000);
return false;
});
发布于 2010-05-03 01:18:08
所以就像这样:
var original_url = '';
var second_url = 'http://example.com/path/to/image.jpg';
var delay_in_milliseconds = 15000
function resetImage() {
$('#myImg').attr('src', original_url);
}
$(document).ready(function () {
original_url = $('#myImg').attr('src');
$('#myImg').attr('src', second_url);
setTimeout(resetImage, delay_in_milliseconds)
});
假设标记如下:
<img id="myImg" src="another/path/to/another/image.jpg" />
我想我理解你的问题,但如果你认为需要修改它,请随意修改。
发布于 2010-05-03 00:44:50
这可能取决于代码的作用。
不要从页面来源的角度考虑。从DOM的角度考虑。
您想要注入的javascript很可能会处理某种事件(它是一个事件处理程序)。因此,在第一次单击时,您希望将该函数绑定(附加)到适当的事件,然后在setTimeout函数中解除绑定。
如果你不想启用/禁用某些行为,那么我们可以使用更多关于这个临时javascript正在做什么的信息来提供更好的指导。
https://stackoverflow.com/questions/2755619
复制相似问题