2010-05-30 66 views
3

這與我前幾天詢問的問題非常相似,但我的頁面代碼已變得非常複雜,我需要重新訪問它。我已經使用以下代碼:顯示圖像並運行腳本十五秒

$('#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); 
    } 

Refresh(); 這是一個攝像頭的腳本。基本上它每半秒鐘拍攝一張新照片並將其替換在頁面上。你必須原諒我,我是jquery的新手,我不知道如何讓這個腳本在jQuery環境下工作。

對不起,我解釋得不好。這就是我需要的情況發生,一步一步:

  1. 用戶來到頁,有寫着「點擊此處查看攝像頭」靜態圖像
  2. 用戶點擊圖像
  3. 圖片更換通過現場攝像頭圖像,這是每個.5秒刷新我的問題中的第二個腳本。
  4. 15秒後,現場攝像頭恢復到靜態圖像說:「點擊此處查看攝像頭」

它,我婉攝像頭刷新腳本運行的15秒間隔期間是ONLY,否則就浪費帶寬在一個甚至沒有顯示的元素上。對困惑感到抱歉。

回答

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

你應該在這裏使用'.removeAttr('disabled')':)另外,'.attr('disabled',true)'爲了一致性。 – 2010-05-30 21:39:11

+0

嗨特倫斯。非常感謝您的回答。這聽起來對我完全正確!但我似乎無法讓它起作用。 看看我正在實施這個網站:http://www.barsurferla.com/demo/bars/cnbnbull/ 你可以看看源代碼,看看它爲什麼不工作? (你的代碼在js/functions.js中) – goddamnyouryan 2010-06-02 05:34:00

+0

你真的不應該讓我爲你做你的工作......但是因爲我很好......把所有東西包裝在$(function(){.. .code我寫了...}); – 2010-06-02 07:14:53