首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在一段时间内显示图像和脚本

在一段时间内显示图像和脚本
EN

Stack Overflow用户
提问于 2010-05-03 08:38:00
回答 3查看 2.6K关注 0票数 1

这与我前几天问的一个问题非常相似,但我的页面代码已经变得非常复杂,我需要重新访问它。我一直在使用以下代码:

代码语言:javascript
代码运行次数:0
运行
复制
$('#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如何格式化这个“回显”。

这个问题有意义吗?

代码语言:javascript
代码运行次数:0
运行
复制
  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上下文中工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-03 09:14:26

如果您希望以一定的时间间隔运行某项操作,请使用与setTimeout()类似的setInterval()

如果将setInterval()赋给一个变量,则可以使用该变量“清除”该变量。在您的setTimeout()函数中执行此操作。

代码语言:javascript
代码运行次数:0
运行
复制
$('#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);
});

编辑:

好的,这就是你的代码。

代码语言:javascript
代码运行次数:0
运行
复制
  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;
  });
票数 2
EN

Stack Overflow用户

发布于 2010-05-03 09:18:08

所以就像这样:

代码语言:javascript
代码运行次数:0
运行
复制
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)
});

假设标记如下:

代码语言:javascript
代码运行次数:0
运行
复制
<img id="myImg" src="another/path/to/another/image.jpg" />

我想我理解你的问题,但如果你认为需要修改它,请随意修改。

票数 1
EN

Stack Overflow用户

发布于 2010-05-03 08:44:50

这可能取决于代码的作用。

不要从页面来源的角度考虑。从DOM的角度考虑。

您想要注入的javascript很可能会处理某种事件(它是一个事件处理程序)。因此,在第一次单击时,您希望将该函数绑定(附加)到适当的事件,然后在setTimeout函数中解除绑定。

如果你不想启用/禁用某些行为,那么我们可以使用更多关于这个临时javascript正在做什么的信息来提供更好的指导。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2755619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档