为什么这个js不起作用?更改onclick属性

时间:2017-07-28 10:23:59

标签: javascript jquery html wordpress

快速且可能很容易解决您的问题。

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/

2 个答案:

答案 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()");