2014-01-06 3 views
0

Я создаю динамический набор кнопоккнопки OnClick событие происходит только один раз нно DOM addEventListener()

for (var i = 0; i < clr.length; ++i) { 
    button = document.createElement("button"); 
    button.innerHTML = clr[i]; 
    button.addEventListener('click', event); 
    button.style.backgroundColor = clr[i]; 
    document.body.appendChild(button); 
} 

, но я хочу, чтобы событие произойдет «только один раз» для каждой кнопки. Но я не могу реализовать это правильно, используя javascript.

+0

Это работает отлично [здесь] (http://jsfiddle.net/VXk7X/)! Где вы застряли? –

+0

@DhavalMarthak OP хочет выполнить событие click только один раз для каждой кнопки. – Praveen

ответ

1

Вы можете удалить присоединенное событие, используя removeEventListener один раз после его выполнения. Делая это замковое событие обрабатывается только один раз, как указано ниже,

function event(e) { //e represented the current element which is clicked 
    e.target.removeEventListener(e.type, arguments.callee); 
    alert('hi'); 
} 

JSFiddle

+1

ничего себе! .. он действительно работал .. не знал о таком методе. Большое спасибо! –

+0

@ Швета Я рад, что смог помочь вам. – Praveen

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