在任何地方点击关闭菜单

时间:2016-04-07 07:47:23

标签: javascript search server load gzip

我正在网站上工作,这里是链接文件:/// 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 () {
	console.log('show do something');
});
});

document.querySelector('#btn_3').addEventListener('click', function () {
popupView.show(document.querySelector('#popup_3'), '', function () {
	console.log('CLOSE');
});
});

</script>
&#13;
&#13;
&#13;

这是作为服务器上的popup_view.js文件附加的代码

&#13;
&#13;
(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;
})();
&#13;
&#13;
&#13;

请帮助,因为我已经尝试了很多代码,但这些代码没有工作

1 个答案:

答案 0 :(得分:1)

$(document).on('click', function(e){ //your close function e.stopPropagation(); } 将该代码放在$(document).ready( ...块

中的任何位置