2013-07-02 3 views
-1

В моем скрипте PHP у меня есть переменная, которая хранит длину массива в arrayLength. Я передаю эту длину javascript. Я попытаюсь сохранить его простым, но в идеале я пытаюсь предоставить каждому элементу массива свою собственную динамическую кнопку javascript, причем каждая кнопка имеет свою собственную функцию. Мне нужно сохранить эти строки в массиве, потому что пользовательский ввод мешает мне узнать, сколько будет элементов, и сколько кнопок/функций мне нужно будет иметь. Раньше я мог получить эту работу, когда у меня была одна кнопка без массива, но теперь я пытаюсь включить несколько динамических кнопок на одну страницу, каждая из которых принадлежит к строке в массиве, а каждая кнопка имеет свою собственную функцию. Является ли моя логика правильной? Если бы вы могли мне помочь, это было бы очень признательно.javascript loop с динамическими кнопками и функциями

var arrayLength = "<?php echo $arrayLength; ?>"; 
var click = { 
click_1: function() { } 
}; 

for (var num=2;num<=arrayLength;num++) { 
var newClick = "click_" + num; 
click[newClick] = function() { // controls what will happen when button is clicked }; 
} 
+1

Почему вы используете двойные кавычки, чтобы указать число? Я думаю, вам нужно установить 'arrayLength' следующим образом:' var arrayLength = ; '. ps: Я не помню, если javascript автоматически переводит строку в число. – daniloisr

ответ

0

Помимо того, что было бы лучше, чтобы обеспечить $arrayLength не в виде строки, а как целое, и что ваш комментарий отсекает закрытия } вашей функции, ваш код работает, ошибка должна быть где-то в другом месте. Я попробовал это в этом fiddle, проверьте вывод console.log(): он возвращает хороший объект с кучей пустых функций в качестве свойств.

+0

Спасибо, просто хотел убедиться, что я делаю это правильно. – Jess

Смежные вопросы