Нет такого события, как, возможно, onunclick
в JavaScript; есть blur
/ onblur
, но для этого требуется, чтобы элемент имел фокус, прежде чем его можно будет запустить.
Тем не менее, работая в предположении, что вы хотите, чтобы только один div
был выделен в любое время, следующие работы, хотя вам придется адаптировать его к вашим конкретным потребностям: 1011 *
var buttons = document.getElementsByClassName('button'), curHighlights;
for (i=0; i<buttons.length; i++){
buttons[i].onclick = function(){
curHighlights = document.getElementsByClassName('bgcolor');
if (curHighlights.length) {
for (h=0; h<curHighlights.length; h++){
// warning: the following removes _all_ class-names
curHighlights[h].removeAttribute('class');
}
}
this.className = 'bgcolor';
this.setAttribute('data-state','1');
};
}
Демонстрация JS Fiddle .
Я удалил обработчики событий onclick
из встроенного html, что облегчает его обслуживание, хотя выглядит довольно грязно.
Однако для сравнения с jQuery вышеприведенное можно сжать до:
$('.button').click(
function(){
$('.bgcolor').removeClass('bgcolor');
$(this).addClass('bgcolor');
});
JS Fiddle demo .