删除JavaScript中的事件单击
我有两个功能来打开和关闭删除JavaScript中的事件单击,javascript,onclick,dom-events,onclicklistener,Javascript,Onclick,Dom Events,Onclicklistener,我有两个功能来打开和关闭sidenav。我添加了一项功能,当您单击导航外部时,将触发函数closeNav()。Sidenav已关闭,但事件单击在整个文档中仍处于活动状态,因此我必须删除EventListener。我试了很多次,但都没有成功。有什么办法吗 JS 因为它不是同一个函数。 试试这个: var sideNav = document.getElementById('rizkSidenav'); var myFunction = function(evt) { targ
sidenav
。我添加了一项功能,当您单击导航外部时,将触发函数closeNav()
。Sidenav已关闭,但事件单击在整个文档中仍处于活动状态,因此我必须删除EventListener
。我试了很多次,但都没有成功。有什么办法吗
JS
因为它不是同一个函数。
试试这个:
var sideNav = document.getElementById('rizkSidenav');
var myFunction = function(evt) {
targetElement = evt.target; // clicked element
do {
if (targetElement === sideNav) {
// This is a click inside. Do nothing, just return.
return;
}
// Go up the DOM
targetElement = targetElement.parentNode;
} while (targetElement);
// This is a click outside.
closeNav();
}
function openNav() {
sideNav.style.width = "83%";
// Close nav when clicked outside
document.addEventListener("click", myFunction);
}
function closeNav() {
sideNav.style.width = "0";
//????? (event listener should be removed)
document.removeEventListener("click", myFunction);
}
var sideNav = document.getElementById('rizkSidenav');
var myFunction = function(evt) {
targetElement = evt.target; // clicked element
do {
if (targetElement === sideNav) {
// This is a click inside. Do nothing, just return.
return;
}
// Go up the DOM
targetElement = targetElement.parentNode;
} while (targetElement);
// This is a click outside.
closeNav();
}
function openNav() {
sideNav.style.width = "83%";
// Close nav when clicked outside
document.addEventListener("click", myFunction);
}
function closeNav() {
sideNav.style.width = "0";
//????? (event listener should be removed)
document.removeEventListener("click", myFunction);
}