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

时间:2010-05-30 20:58:37

标签: php javascript jquery

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

$('#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秒后,现场网络摄像头恢复为静态图像“点击此处查看网络摄像头”
  5. 仅在15秒的间隔期间我才开始运行网络摄像头刷新脚本,否则会浪费带宽甚至没有显示的元素。对不起,感到困惑。

1 个答案:

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