javascript - onClick -> Fiddle 在第一次点击时起作用,但停止工作 - 神秘

标签 javascript onclick layer mask

我有这个jsfiddle一次有效。

function toggle_off(itemID){
  alert(itemID+'->'+document.getElementById(itemID).getAttribute("style"));
  document.getElementById(itemID).style.display = 'none';
}

function maskIt(x){
  alert(x);
  var mask = document.createElement('div');
  mask.id = 'maskIt';
  mask.setAttribute("class", "maskIt");
  mask.onclick = function(){toggle_off('maskIt');}
  mask.innerHTML = 'click to close mask';
  document.body.appendChild(mask);
}

单击时,它会打开一个蒙版(图层),单击蒙版时 - 会自行关闭 - 到这里为止一切都很好。

第二次单击时, mask 会再次打开,但当您第二次单击它时,它不会关闭。

有什么想法吗?

最佳答案

您不应隐藏该 div,而是应将其删除,因为每次点击都会创建一个新的 div

function toggle_off(itemID){
  alert(itemID+'->'+document.getElementById(itemID).getAttribute("style"));
  var mask = document.getElementById(itemID);
  mask.parentNode.removeChild(mask);
}

DEMO

关于javascript - onClick -> Fiddle 在第一次点击时起作用,但停止工作 - 神秘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297542/

相关文章:

javascript - 如何在每次单击按钮时将创建的 id 添加到 datepicker()

javascript - 传递带有嵌套函数的函数和带有 array.map 的当前值

javascript - 选择框 PHP 数组 => 单击 Div 上的 Javascript

附加 DOM 对象时触发 JQuery 单击事件

maps - Leaflet.js - 如何绘制自动覆盖一组标记的多边形?

javascript - x 轴标签与 Highcharts 中图表之间的距离

javascript - 有没有办法在指针事件设置为 none 的元素上触发 JavaScript onclick 事件?

javascript - 将 onclick 事件添加到 img id

iphone - 如何使 UIImageView 变暗

java - 我需要将 DOM 与 "persistence layer"分开