2013-11-14 4 views
2

я работаю на код, чтобы создать несколько кнопок в зависимости от пользовательского вводаЧтобы назначить OnClick события на несколько кнопок

for(var loop = 0; loop < up.length ; loop++){ 
document.write('<button style="background-color:'+ up[loop] +';width:100;height:100" </button>'); 

} 

однако я хочу иметь такое же OnClick функции для каждой кнопки, но если я использую как один ниже функция не выполняется. В чем проблема и где я ошибаюсь? Пожалуйста помоги.

document.write('<button style="background-color:'+ up[loop] +';width:100;height:100" onclick= "myfn()" </button>'); 
+0

Valid HTML является обязательным условием для получения что-нибудь работать, и с помощью какой-то вставки DOM вместо document.write всегда хорошая идея. – adeneo

ответ

0

, что о чем-то вроде этого (не JQuery необходимо, и не document.write):

var button; 
for (i=0; i<5; i++) { 
    button = document.createElement('button'); 
    button.innerHTML = "button - " + i; 
    button.addEventListener('click', myFn); 
    document.body.appendChild(button); 
} 


function myFn() { 
    alert('button clicked'); 
} 

посмотреть здесь: http://jsfiddle.net/yNFqy/1/

+0

Это сработало! спасибо, но как я могу изменить внешний вид кнопки с помощью css? –

+0

Да, вы можете добавить туда строку: button.classList.add ('your-classname-here'), а затем стиль w/CSS –

+0

ну, моя функция myFn() нуждается в элементе в 'i'-й позиции, например вверх [i], как я могу передать аргумент myFn() здесь? –

1

опечатка, вы не закроете открывающий тег:

document.write('<button style="background-color:'+ up[loop] +';width:100;height:100" onclick="myfn()"></button>'); 

Всегда убедитесь, что вы утвердите службы проверки разметки W3c: http://validator.w3.org

Вы должны также исследовать ненавязчиво крепления обработчики событий , написание обработчиков inline не является идеальным.

0
  1. Использование JQuery
  2. Добавьте класс кнопок (всегда же класс)
  3. Пользователь метод нажмите Jquery, чтобы обработать щелчок

$ (имя-класса».) .click (function() {alert ("click");});

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