2017-02-10 2 views
0

Я пытаюсь получить кнопку для изменения текста onclick, в то же время он также открывает меню. Меню работает и открывается onclick, но текст на кнопке отсутствует.Изменить текст onclick button

Возможно, это устранение неполадок с помощью той части, которая открывает меню? Я не могу найти, почему он не работает.

Кнопка

<button type="button" id="showRight" onClick="click()">Tools</button> 

Сценарий:

<script> 
    var menuLeft = document.getElementById('cbp-spmenu-s1'), 
     menuRight = document.getElementById('cbp-spmenu-s2'), 
     menuTop = document.getElementById('cbp-spmenu-s3'), 
     menuBottom = document.getElementById('cbp-spmenu-s4'), 
     showRight = document.getElementById('showRight'), 
     body = document.body; 

    showRight.onclick = function() { 
     classie.toggle(this, 'active'); 
     classie.toggle(menuRight, 'cbp-spmenu-open'); 
    }; 

    function click() 
    { 
     var change = document.getElementById("showRight"); 
     if (change.value == "Tools") 
     { 
      change.value = "X"; 
     } 
     else 
     { 
      change.value = "Tools"; 
     } 
    } 
</script> 
+1

И 'classie' никогда не определен – epascarello

+0

добавил строку сценария, которая теперь – marijn

+1

Почему вы вызываете две разные функции, два разных способа, в одном и том же событии на одном элементе? – eeetee

ответ

1

Это не change.value это change.textContent или change.innerText если хотите.

+0

Спасибо, я объединил обе функции и использовал textContent вместо этого теперь его рабочий – marijn

1

При добавлении события, переопределении атрибут рядный щелчка.

Вы должны использовать addEventListener

showRight.addEventListener("click", function() {}); 

Лично я бы объединить оба метода в один.

0

Я считаю, что щелчок является ключевым словом и не может использоваться для имени функции. Если вы просто смените имя функции на showRight_click() и обновите свой onclick, чтобы он соответствовал, он работает отлично.

+0

Его можно использовать как имя функции. Ваша догадка неверна. Попробуйте сами. – dfsq

+0

Это не было догадкой. Я попробовал это, прежде чем отправил ответ, и он никогда не запускал событие с функцией click(). Вам нужно попробовать. – TRock

+0

:) Тогда не было догадки, а просто недостатка знания. 'click' может быть именем функции, это не проблема. Это не сработало просто потому, что событие, настроенное как свойство dom element 'showRight.onclick', перезаписывает событие, связанное с атрибутом. – dfsq