2016-04-07 6 views
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; 
 
})();

Пожалуйста, помогите, как я попробовал много кодов кроме них, но не из них работает

+0

'$ (документ) .На ('щелчок', HIDE_IT)' и стоп-событие-Размножение! – Rayon

+0

Я немного слаб в javascript, не могли бы вы рассказать мне, куда его поместить, я имею в виду, что мне нужно внести изменения и поместить этот код в мой текущий javascript, или я должен поместить его отдельно? – fahim

ответ

1

$(document).on('click', function(e){ //your close function e.stopPropagation(); } Поместите этот код в любом месте $(document).ready( ... блок

Смежные вопросы