2015-04-12 3 views
1

Я пытаюсь добавить вторую функцию onclick к моему элементу, но пока что безуспешно, попробовал с различными разделителями, такими же цитатами и такими, но пока не работает.Несколько onclicks на том же div

Это код:

<a title="course" onclick="if(document.getElementById('spoiler') .style.display=='none') {document.getElementById('spoiler') .style.display=''}else{document.getElementById('spoiler') .style.display='none'};" onclick="if(document.getElementById('nav-res') .style.display=='block') {document.getElementById('nav-res') .style.display='none'};">Course</a> 

Может кто-нибудь указать на то, что я делаю не так? Большое спасибо

ответ

2

Вы не можете добавить несколько сообщений onclick.
Вам нужно добавить точку с запятой (;) между командами.

<a href="#" onclick="alert('this is command 1'); alert('this is command 2');">click me</a> 
//---------------------------------------------^---------------------------^ 

Однако я не сделал бы этого так, как вы это делаете.
Я бы сделал отдельную функцию, которая делает все, что вы пытаетесь сделать.
Неправильно использовать все в html (inline).

Я хотел бы сделать это следующим образом:

<a id="" onclick="clickme()"> 
<script> 
    function clickme() { 
     // action 1 
     if(document.getElementById('spoiler').style.display=='none'){ 
      document.getElementById('spoiler').style.display=''; 
     } 
     else{ 
      document.getElementById('spoiler').style.display='none'; 
     }; 
     // action 2 
     if(document.getElementById('nav-res').style.display=='block'){ 
      document.getElementById('nav-res') .style.display='none'; 
     } 
    } 
</script> 
+0

поэтому я не могу использовать 2 onclicks на одном элементе? – Nec

+0

нет вы не можете. вы можете использовать только один атрибут html каждого типа для каждого тега. –

+0

@ AryehArmon - хороший ответ! Пожалуйста, взгляните на изменения, которые я сделал. Надеюсь, вы согласны со мной в том, что они являются улучшением. Также позаботьтесь о том, чтобы убедиться, что ваш код работает - у вас были некоторые проблемы с кавычками в вашей первой строке кода – Lix

2

Я призываю вас, чтобы попытаться с помощью слушателей событий:

<a href='#' id='mytag'> 

, а затем:

<script> 
    document.getElementById('mytag').addEventListener("click", function(){ 
    alert(1) 
    }, false); 

    document.getElementById('mytag').addEventListener("click", function(){ 
    alert(2) 
    }, false); 
</script> 

или с JQuery:

<script> 
    $('#mytag').click(function(){ alert(1) }) 
    $('#mytag').click(function(){ alert(2) }) 
</script> 
+2

Эй, Роберт, удалите фунт из идентификатора элемента ... – Ronny

+0

опечатка, спасибо !, исправлено – robert

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