1
我在网站上工作,这里是链接文件:/// D:/fahim/HTML/menu/index.html。如果您点击菜单,则会在其自己的“X”按钮上关闭,但我希望通过在菜单外单击来关闭它。这是主页上使用的JavaScript。关闭任何地方的菜单点击
<script>
var popupView = new popup();
document.querySelector('#btn_1').addEventListener('click', function() {
popupView.show(document.querySelector('#popup_1'));
});
document.querySelector('#btn_2').addEventListener('click', function() {
popupView.show(document.querySelector('#popup_2'), function() {
\t console.log('show do something');
});
});
document.querySelector('#btn_3').addEventListener('click', function() {
popupView.show(document.querySelector('#popup_3'), '', function() {
\t console.log('CLOSE');
});
});
</script>
而这已列为popup_view.js文件服务器上
(function() {
var popup = function() {
function hide(dom, dosomething) {
if (!dom) {
console.error('hide function not set dom object');
return;
}
if (dosomething) {
dosomething();
}
dom.className += ' ' + 'popup_hide';
}
function show(dom, dosomethingShow, dosomethingClose) {
if (!dom) {
console.error('show function not set dom object');
return;
}
if (dosomethingShow) {
dosomethingShow();
}
var className = 'popup_hide',
reg = new RegExp('(^|\\b)' +
className.split(' ').join('|') +
'(\\b|$)', 'gi');
dom.className = dom.className.replace(reg, '').trim();
var nodes = dom.childNodes;
for (var i = nodes.length - 1; i >= 0; i--) {
if (nodes[i].className === 'pop_up_close') {
var close = function (e) {
if (dosomethingClose) {
dosomethingClose();
}
dom.className += ' ' + 'popup_hide';
nodes[i].removeEventListener('click', close);
};
nodes[i].addEventListener('click', close);
break;
}
}
}
this.show = show;
this.hide = hide;
};
window.popup = popup;
})();
请帮助,因为我已经试过很多代码的代码除了这些,但他们不工作
'$(文件)。在( '点击',HIDE_IT)'和停止事件传播史! – Rayon
我在JavaScript中有点弱,你能告诉我把它放在哪里,我的意思是我必须修改并将此代码放入当前的JavaScript中,否则我必须单独放置它? – fahim