2012-02-16 16 views
1

私が最近行ったのは、最近のtutorial of Computer Arts magazineのコードです。私がしようとしているのは、ループ内にonClick関数を実装することで、それぞれdivがクリック可能になり、対応するWebページがロードされます。注意してください(forループ内のonClickは起動していません

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

ANDアレイからの情報を受け取りループ:

は、私は現在の値の一組のみで、配列を持っていますが、似ている複数の値のアイデアを得ることができます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をビルドした後でその例を教えてください。スクリプトを実行し、ソースを表示して質問を編集して、スクリプトの内容を追加します。 –

+1

JSを使用してHTMLに埋め込まれたJSの文字列を連結しますか?これはデバッグする悪夢です(あなたが発見したように)。 innerHTMLを使いこなす代わりに、標準のDOM操作を使用します。 – Quentin

答えて

4

あなたの問題は、単一の'であってもよい - それは、URLの末尾に移動する必要があります

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

+0

ありがとうございました。今動作しています:) – TheGreatBenigma

+3

質問に答えた場合は、そのようにマークしてください。 – maialithar

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

+0

ありがとう@mplungjan、 'document.location'はいつも' windows.location'を使用していました... – bfavaretto

+0

Feel私も投票することができます。私もここでいくつかの愛が欲しい:) – mplungjan

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とfirebugを試してみてください

関連する問題