首先看下JS的事件模型,JS事件模型為向上冒泡,如onclick事件在某一DOM元素被觸發后,事件將跟隨節點向上傳播,直到有click事件綁定在某一父節點上,如果沒有將直至文檔的根。
阻止冒泡:1、stopPropagation()對于非IE瀏覽器。2、cancelBubble屬性為true,對于IE瀏覽器,
而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>
新聞熱點
疑難解答