2012-03-15 94 views
0

不知道我在做什麼或爲什麼它不起作用。顯然不使用正確的方法,並可能不會使用正確的語言來解釋問題..onClick將多個值中的一個替換/段/ img src路徑

Photogallery ...試圖有一個單一的HTML頁面...它有圖像的鏈接...頁面「的宗旨,以」由路徑目前發現的名稱和相應的用戶點擊該按鈕畫廊的名稱替換它修改的路徑,圖像...

例如:

GALLERY2go : function(e) { 
    if(GalleryID!="landscapes") 
    { 
    var find = ''+ findGalleryID()+''; 
    var repl = "landscapes"; 
    var page = document.body.innerHTML; 
    while (page.indexOf(find) >= 0) { 
     var i = page.indexOf(find); 
     var j = find.length; 
     page = page.substr(0,i) + repl + page.substr(i+j); 
     document.body.innerHTML = page; 
     var GalleryID = "landscapes"; 
    } 
    } 
}, 

有一個功能更高的頁面得到VAR發現取var的值GalleryID:

var GalleryID = "portfolio"; 

function findGalleryID() { 
    return GalleryID 
} 

很明顯,第一個varGalleryID是全局的(如果我能夠找到一個引用它的onLoad的方法,那麼t就設置了一個默認值),並且函數內部的一個被清除(我讀過那麼多)。但我不知道這是什麼意思。

該代碼,鑑於其弱點或其他荒謬,實際上確實改變了所有圖像鏈接(以及絕對所有其他所謂的「投資組合」)在html頁面 - 因此「投資組合」成爲「風景」...路徑到圖像的變化,他們都更新...作爲一個JavaScript初學者,我非常樂意看到它的工作。但是你不能點擊另一個圖庫按鈕,因爲它滯留在某種類型的循環中。事實上,在你點擊按鈕之後,你不能點擊其他任何東西,其餘所有JavaScript功能都是錯誤的。也許我已經介紹了它永遠不會退出的某種循環。如果您在投資組合中點擊投資組合,會導致瀏覽器崩潰!無論如何,我很清楚「我的拼湊在一起的解決方案」並不是如何由具有編寫代碼經驗的人完成的。他們可能會使用別的名字,但需要另一次學習。我不認爲我可以使用getElement,並引用類/ id名稱並解析文件名[使用很多我根本不瞭解的詞語],因爲它們會影響腳本的其他部分。我嘗試過使用div包裝器和代碼來啓動一個子html文檔,並且不會處理現有內容或與樣式表交談。我流血了,甚至不知道從哪裏開始尋找下一個。

問題是......這裏是一個請求...如果你們中的任何人都回答了,我擔心你會回答,而不會假設你正在和某個真的沒有頭緒的人說話。 AJAX和JQuery和PHP是...我搜索論壇;我不明白他們。請記住這一點。

回答

0

我會刺探一下更新你的功能。我認識到,對代碼進行批評可能無助於解決問題。

var currentGallery = 'landscape'; 
    function ChangeGallery(name) { 
     var imgs = document.getElementsByTagName("img") // get all the img tags on the page 
     for (var i = 0; i < imgs.length; i++) {   // loop through them 
      if (imgs[i].src.indexOf(currentGallery) >= 0) {  // if this img tag's src contains the current gallery 
       imgs[i].src = imgs[i].src.replace(currentGallery, name); 
      } 
     } 
     currentGallery = name; 
    } 

至於爲什麼我做我所做的事情 - 你在該變量的作用域正確的 - 無論是整個頁面,或者只給定函數,知道它,在混合你的代碼。然而,另一個潛在的問題是,如果您將HTML中的'landscape'替換爲'portfolio',那麼它可能會更改非圖片。此代碼僅查找圖像,並且只有在包含給定關鍵字的情況下才替換src。