快速且可能很容易解决您的问题。
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 :(得分: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();
});
答案 1 :(得分:0)
您必须设置该属性。请尝试以下内容:
document.getElementById("nav-icon3").setAttribute("onclick", "closeNav()");