繁体   English   中英

显示图像并运行脚本十五秒钟

[英]display image and run script for fifteen seconds

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

$('#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上下文中工作。

对不起,我的解释很糟糕。 这就是我需要一步一步发生的事情:

  1. 用户进入该页面并且有一个静态图像显示“单击此处查看网络摄像头”
  2. 用户点击图片
  3. 图像被实时网络摄像头图像取代,在我的问题中,第二个脚本每0.5秒刷新一次。
  4. 15秒后,现场网络摄像头恢复为静态图像“点击此处查看网络摄像头”

只有在15秒的时间间隔内,我才开始运行网络摄像头刷新脚本,否则会浪费带宽甚至没有显示的元素。 对困惑感到抱歉。

这应该为你做的伎俩...(虽然你可能会尝试检测他们是否离开了页面(我不能给你任何关于如何做的建议))

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
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM