Что я имею ниже, это код из недавнего tutorial of Computer Arts magazine. То, что я пытался сделать, это реализовать функцию onClick
в цикле, чтобы каждый div
был доступен для кликабельности и загружал соответствующую веб-страницу.onClick in a for loop не стреляет
У меня есть массив, в настоящее время только один набор значений, но вы можете получить представление о нескольких значениях, которые похожи:
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
, но мне не повезло. Пожалуйста, помогите с этой простой дилеммой!
Не могли бы вы привести пример HTML после его создания? Пусть сценарий запускается, просматривает источник и редактирует вопрос, чтобы добавить то, что создает скрипт. –
Использование JS для конкатенации строк JS, встроенных в HTML? Это кошмар для отладки (как вы обнаружили). Используйте стандартную манипуляцию DOM вместо того, чтобы возиться с innerHTML. – Quentin