ホームページ  >  記事  >  ウェブフロントエンド  >  div エリアの外側をクリックして div エリアを非表示にする_js によって実装された javascript スキル

div エリアの外側をクリックして div エリアを非表示にする_js によって実装された javascript スキル

WBOY
WBOYオリジナル
2016-05-16 16:42:531486ブラウズ

まず、JS イベント モデルを見てみましょう。たとえば、特定の DOM 要素で onclick イベントがトリガーされた後、イベントはクリック イベントまで上向きに伝播します。特定の親ノードにバインドされている場合は、ドキュメントのルートに移動します。

バブリングの防止: 1. IE 以外のブラウザの stopPropagation()。 2. IE ブラウザの場合、cancelBubble 属性は true、

Jquery には、ブラウザー互換のメソッド、event.stopImmediatePropagation();
がすでにあります。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="js/jquery-1.4.4.min.js" ></script>
<title></title>
</head>
<style type="text/css">
body
{
background-color:#999999;
}

#myDiv
{
background-color:#FFFFFF;
width:250px;
height:250px;
display:none;
      }
  </style>
<body>
<input id="btn" type="button" value="显示DIV" />

<div id="myDiv">
This is a div;
</div>

</body>

<script type="text/javascript">
    var myDiv = $("#myDiv");
$(function ()
{
$("#btn").click(function (event) 
{
showDiv();//调用显示DIV方法
$(document).one("click", function () 
{//对document绑定一个影藏Div方法
$(myDiv).hide();
});

event.stopPropagation();//阻止事件向上冒泡
});
$(myDiv).click(function (event) 
{

event.stopPropagation();//阻止事件向上冒泡
});
});
    function showDiv() 
{
$(myDiv).fadeIn();
}
</script>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。