2012-08-14 49 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. 

}