2016-04-07 17 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>

そして、これは

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

サーバー上popup_view.jsファイルとして添付されたコードである私は、コードの多くを試してきたように助けてくださいこれらを除いては動作しません。

+0

' $(文書).on( 'クリック'、HIDE_IT)をブロック...どこでもあなたの$(document).ready(でそのコードを入れて、ストップ・イベント・プロパゲーションを! – Rayon

+0

私はjavascriptで少し弱いです、あなたはそれを置く場所を教えてください、私は私の現在のjavascriptにこのコードを修正しなければならないか、別にそれを置く必要があるという意味ですか? – fahim

答えて

1

$(document).on('click', function(e){ //your close function e.stopPropagation(); } `

関連する問題