2012-02-16 51 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和萤火虫