2012-02-16 113 views
1

我在下面是最近的tutorial of Computer Arts magazine的代碼。我試圖做的是在循環中實現onClick函數,以便每個div都是可點擊的,並將加載相應的網頁。onClick for for循環未觸發

我有一個數組,目前只有一種價值觀,但你可以得到多個值是類似的想法:

var itemsHTML = '', 
     items = [ 
     { 
      itemType:'ani', 
      itemName:'Show Reel 10-11', 
      path:'thumb_showreel.jpg', 
      urlPath:'showreel.html' 
     }]; 

而這需要從陣列的信息迴路(請注意該onClick的 - 這是我的輸入,其他的一切都是從教程:

for(var i = 0; i < items.length; i++) { 
     var type = items[i]['itemType']; 
     var name = items[i]['itemName']; 
     var path = items[i]['path']; 
     var urlPath = items[i]['urlPath']; 
     itemsHTML += " <div class=\"element " + type + "\" style=\"background-image:url('portfolio/" + type + "/" + path + "')\" onClick=\"document.location='http://www.thepapertorium.co.uk/'" + urlPath + "\">"; 
     itemsHTML += "  <div class=\"label\">"; 
     itemsHTML += "  <h1>" + name + "<\/h1>"; 
     itemsHTML += "  <\/div>"; 
     itemsHTML += " <\/div>"; 
    } 

這同樣onClick是從我的頭的旗幟採取它正常工作在那裏,所以我想我可以把它貼到這裏,並且,自然,廣告這裏是for循環所需的語法,但我沒有運氣。請幫助這個簡單的困境!

+1

您可以提供HTML構建後的示例嗎?讓腳本運行,查看源代碼並編輯問題以添加腳本生成的內容。 – 2012-02-16 13:43:43

+1

使用JS來連接嵌入在HTML中的JS的字符串?這是一個調試的噩夢(就像你發現的那樣)。使用標準的DOM操作,而不是用innerHTML搞亂。 – Quentin 2012-02-16 13:47:03

回答

4

你的問題可能出在單' - 它應該去的網址的結尾:

onClick=\"document.location='http://www.thepapertorium.co.uk/" + urlPath + "'\"

+0

非常感謝。它現在有效:) – TheGreatBenigma 2012-02-16 14:24:15

+3

如果問題得到解答,請將其標記爲此。 – maialithar 2012-02-16 15:16:35

1

我覺得你的問題是document.location而不是window.location。但我不會使用了JavaScript,你可以使用一個錨標記,而不是:

itemsHTML += " <a class=\"element " + type + "\" style=\"display: block; background-image:url('portfolio/" + type + "/" + path + "')\" href=\"http://www.thepapertorium.co.uk/" + urlPath + "\">"; 
+0

document.location不是問題,但你正確的不需要javascript來改變位置 – mplungjan 2012-02-16 14:05:44

+0

謝謝@mplungjan,我不知道'document.location'是否存在,總是用'windows.location' ... – bfavaretto 2012-02-16 14:42:55

+0

感覺也可以免費投票。我想在這裏也有一些愛:) – mplungjan 2012-02-16 16:03:24

1

行情問題 - 我簡化他們爲你通過反轉「和」

我還增加;光標:指針和window.location的改變document.location因爲這是比較正確的其實bfavaretto確實是正確的話,你並不需要一個JavaScript來改變頁面 - 一個鏈接甚至會爲你免費

DEMO

指針
itemsHTML += '<div class="element ' + type + '" style="background-image:url(\'portfolio/' + type + '/' + path + '\')" onClick="window.location=\'http://www.thepapertorium.co.uk/' + urlPath + '\'">'; 

下一次嘗試jsfiddle.net和螢火蟲