2017-07-28 59 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(); 
});