2014-10-07 5 views
0

Вот основная часть моего кода, пытающегося переключить класс на тег p (info) при нажатии на мою кнопку (btn). Я не уверен, что я делаю неправильно. Я никогда раньше не использовал свойство className, поэтому не уверен, что я пропущу что-то простое, или если в моей логике есть фундаментальная ошибка, пытающаяся это сделать.My Javascript не меняет свойство className

var handler = function(event){ 
    if(info.className === 'on'){ 
    info.className='off'; 
    }else{ 
    info.className='on'; 
    } 
}; 

btn.addEventListener('click', handler); 
+0

Где 'info' объявлен? – tymeJV

+1

Я не могу воспроизвести вашу проблему. [Вот jsFiddle с демонстрацией вашего кода, работающего] (http://jsfiddle.net/peterolson/4cmzLubh/1/). –

+0

Я использовал document.getElementById для получения информации и btn. Я работал с другим методом, просто изменяя info.style.display, но я пытаюсь понять, как реализовать это, изменив имя класса. – mikeLspohn

ответ

1

Ваш код работает нормально. Вы можете запустить фрагмент ниже, чтобы увидеть, что он работает.

var btn = document.getElementById("btn"), 
 
    info = document.getElementById("info"); 
 

 
var handler = function (event) { 
 
    if (info.className === 'on') { 
 
     info.className = 'off'; 
 
    } else { 
 
     info.className = 'on'; 
 
    } 
 
}; 
 

 
btn.addEventListener('click', handler);
.on { 
 
    background-color: red; 
 
} 
 
.off { 
 
    background-color: green; 
 
}
<button id=btn>Button</button> 
 
<p id=info>Info</p>

+0

Спасибо. У меня была кудрявая фигурная скобка в моем фактическом коде. Я думал, что делаю что-то неправильно. Благодарим вас за использование функции примера запуска на этом сайте. Я еще не видел, чтобы это было полезно узнать. – mikeLspohn

0

Что такое информация - это идентификатор? если да, и если вы используете простой javascript, тогда назовите его как document.getElementById ('info'), или если jquery затем $ ('# info').

Однако он также звучит как все элементы name и classnames (информация, вкл., Выкл.), Отображаемые как встроенные ключевые слова. Лучше измените их имена и попробуйте снова что-то вроде infoElem, onClass, offClass, и эти классы должны быть переименованы снова аналогично в вашей таблице стилей.