麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

js利用事件的阻止冒泡實現點擊空白模態(tài)框的隱藏

2019-11-20 21:12:30
字體:
來源:轉載
供稿:網友
很多時候,我們做前端的時候都會有這樣的小功能,點擊彈出某個框框,但是,有時候不想操作,就想點擊某個空白處,隱藏該框框。假設如下場景,一個小按鈕,點擊可以彈出一個模態(tài)框。

就這么簡單,但是我們想要點擊空白部分的時候隱藏模態(tài)框,加入按鈕id:btn,模態(tài)框id:model

也許我們最簡單的思路就是直接在document上監(jiān)聽一個事件,偽代碼如下:

按鈕點擊彈出事件監(jiān)聽:
復制代碼 代碼如下:

$("#btn").bind("click",function(e){
if(e.stopPropagation){//需要阻止冒泡
e.stopPropagation();
}else{
e.cancelBubble = true;
}
})

復制代碼 代碼如下:

$(document).bind("click",function(e){
if(點擊事件不在model上){
隱藏模態(tài)框;
}
})

乍一看,這是沒有問題的,但是,其實有很多問題,首先,我們得注意阻止冒泡,否則,點擊按鈕,實際是觸發(fā)了上面兩個事件,modal是彈不出來的,其實是彈出來了,立馬又隱藏了,而且,當我們在模態(tài)框上還有許多小控件的時候,我們對于模態(tài)框中的點擊就很難進行判斷。

這里,我認為有一種最經典的方法,很簡單,但是很巧妙,

首先,對于模態(tài)框監(jiān)聽一個事件如下:
復制代碼 代碼如下:

$("#modal").bind("click", function(event) {
if (event && event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}

});

只是簡單阻止模態(tài)框中的點擊事件冒泡,

然后:
復制代碼 代碼如下:

$(document).one("click", function(e){
var $target = $(e.currentTarget);
if ($target.attr("id") != "modal") {
$("#modal").css("display", "none");
}
});

搞定,so easy
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 一级毛片免费观看在线 | 黄色视屏免费看 | 成码无人av片在线观看网站 | 亚洲国产在 | 91网站在线观看视频 | 在线播放亚洲精品 | 黄色免费在线网站 | 姑娘第四集免费看视频 | 欧美一级一区二区三区 | 精品成人国产在线观看男人呻吟 | 国产精品久久久久无码av | 最新中文在线视频 | 久久9色| 香蕉国产片 | 国产1区2区3区中文字幕 | 一级在线视频 | 精品久久久久久久久久久久 | 亚洲国产视频网 | 中文字幕在线免费播放 | 久草导航 | 粉嫩粉嫩一区二区三区在线播放 | 久久艹艹艹 | 在线高清中文字幕 | 天天草夜夜 | 91精品动漫在线观看 | 欧美日本日韩 | 成人免费毛片片v | 婷婷中文字幕一区二区三区 | 久久草草影视免费网 | 免费看一级片 | 黄网站免费观看视频 | 全黄性性激高免费视频 | 黄色淫片 | 欧美福利视频一区二区三区 | 欧美精品一区二区三区四区 | 美国av免费看 | 青草久久网 | 亚洲电影免费观看国语版 | 国产手机国产手机在线 | 91美女啪啪 | 一级视频网站 |