2012-08-14 97 views
3

一旦激活其中一個onclick事件,我該如何禁用其他onclick事件。這兩個div設置爲顯示:無;在CSS中。這可能很簡單,但我是編程新手。使用javascript禁用onclick屬性

HTML

<a id="leftbutton" href="#" onclick="showDiv(this.id); return false;">click me</a> 
<a id="righttbutton" href="#"onclick="showDiv(this.id); return false;">click me</a> 

的Javascript

function showDiv(id) 
{ 
    if(id == "leftbutton"){ 
    document.getElementById('orangediv').style.display = 'block'; 
    }else{ 
    document.getElementById('greendiv').style.display = 'block'; 
}} 
+0

的重複[拔下img標籤onclick事件](http://stackoverflow.com/questions/ 10712219/remove-onclick-event-from-img-tag)和技術上的[如何使用書籤刪除內嵌onclick屬性?](http://stackoverflow.com/questions/2562159/how-cani-i-刪除內嵌的onclick-attribute-with-a-bookmarklet)。 – 2015-07-13 09:19:30

回答

3

這應該做的伎倆:

function showDiv(id) 
{ 
    if(id == "leftbutton"){ 
    document.getElementById('orangediv').style.display = 'block'; 
    document.getElementById('righttbutton').onclick = null; 
    }else{ 
    document.getElementById('greendiv').style.display = 'block'; 
    document.getElementById('leftbutton').onclick = null; 
}} 
+0

謝謝。我先試了這個,然後它做了我以前想要做的事情。 – ocat 2012-08-17 06:03:56

0

喜歡本作例子:

function showDiv(id){ 

    if (id == "leftbutton"){ 
    document.getElementById('orangediv').style.display = 'block'; 
    document.getElementById('rightbutton').onclick = "#"; 
}else{ 
    document.getElementById('greendiv').style.display = 'block'; 
    document.getElementById('leftbutton').onclick = "#"; 
}} 
+0

這也工作謝謝你。非常簡單。 – ocat 2012-08-17 06:07:48

0

東西沿着這些路線:

function showDiv(id){ 
var o = document.getElementById('orangediv'); 
var g = document.getElementById('greendiv'); 
if (id == "leftbutton"){ 
    o.style.display = 'block'; 
}else{ 
    g.style.display = 'block'; 
} 
o.writeAttribute('onclick',''); 
g.writeAttribute('onclick',''); 
} 
0

只需將其他元素的onclick屬性設置爲null;

if (id == "leftbutton"){ 
     document.getElementById('orangediv').style.display = 'block'; 
     document.getElementById('righttbutton').onclick = null; 
    } 
    else{ 
     document.getElementById('greendiv').style.display = 'block'; 
     document.getElementById('leftbutton').onclick = null; 
    } 
} 
0
function showDiv(id) { 
    if (showDiv.executed) { 
     return false; 
    } 

    if (id === "leftbutton") { 
     document.getElementById('orangediv').style.display = 'block'; 
    } else { 
     document.getElementById('greendiv').style.display = 'block'; 
    } 

    showDiv.executed = true; 
} 

showDiv.executed = false; 

這樣做,這樣,你總是可以通過簡單的設置showDiv.executedfalse重新啓用的表現。

0

如果顯示其它元件,您可以測試:

function showDiv(id) 
{ 
    if (id == "leftbutton" && (document.getElementById('greendiv').style.display == 'none')) 
    { 
     document.getElementById('orangediv').style.display = 'block'; 
    } 
    else if(id == "rightbutton" && (document.getElementById('orangediv').style.display == 'none')) 
    { 
     document.getElementById('greendiv').style.display = 'block'; 
    } 
} 
0

您可以設置href屬性的DIV的ID應該追你visibled單擊。 showDiv函數可以獲取整個元素作爲參數,然後您也可以訪問它的屬性。第二個參數可以是元素的ID,你應該隱藏,

<a id="leftbutton" href="orangediv" onclick="showDiv(this,'rightbutton');return false">click me</a> 
    <a id="righttbutton" href="greendiv"onclick="showDiv(this,'leftbutton');return false">click me</a> 

而且在JS:

var showDiv =function(el, toHide){ 
    document.getElementById(el.href).style.display = 'block'; 
    document.getElementById(toHide).style.display = 'none'; 
    el.onclick = null; //remove onclick declaration from this anchor. 

}