2015-04-12 52 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(內聯)中都不是好習慣。

我會做這樣的:

<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

嘿羅伯特,從元素ID刪除英鎊... – Ronny

+0

錯字,謝謝你,固定 – robert