2017-07-28 35 views
-2

快速,可能很容易为您解决问题。为什么这个js不工作?更改onclick属性

function openNav() { 
    document.getElementById("myNav").style.visibility = "visible"; 
    document.getElementById("myNav").style.opacity = "1"; 
    document.getElementById("nav-icon3").attribute("onclick","closeNav()"); 
} 

此功能在可见度和不透明度下正常工作,但更改onclick功能不起作用。有任何想法吗? 页面:http://test.advermedia.pl/

+0

请问您的控制台显示的任何错误? –

+0

哦k ....我只是忘了添加setAttribute:D我很抱歉的问题哈哈 –

+0

Adbur我为你发布页面,你可以看所有的html标签和一些CSS。这是你需要的整个js ...所以没有我不推广我的网站,即时学习... –

回答

0

您必须设置该属性。请通过以下尝试:

document.getElementById("nav-icon3").setAttribute("onclick", "closeNav()"); 
1

首先,它setAttribute(),不attribute()。其次,无论如何,使用事件属性都是毫无意义的,更不用说在运行时动态改变它们了,这是一个非常糟糕的主意。使用单不显眼的事件处理程序,而不是:

<div id="nav-icon3">Toggle nav</div> 
document.getElementById("nav-icon3").addEventListener('click', function() { 
    var nav = document.getElementById("myNav"); 
    nav.style.visibility = nav.style.visibility == 'visible' ? 'hidden' : 'visible'; 
    nav.style.opacity = nav.style.opacity == '1' ? '0' : '1'; 
}); 

或者,因为你已经标记的jQuery:

$('#nav-icon3').click(function() { 
    $('#myNav').toggle(); 
});