2014-09-03 72 views
0

我正在實現popovers,因爲現有的庫不夠靈活。我想設置任意分度類.popover它表明行爲:收聽按鍵和「點擊外部」彈出/特定類

  1. 摧毀Esc鍵
  2. 破壞時,點擊境外

兩者都是事件,都需要應用上元素歸類爲.popover。要在逃避破壞popovers:

$(document).keyup(function(e) { 

    if (e.keyCode == 27) { 
    popovers = $(".popover"); 
    //destroy popovers 
} 
}); 

但我堅持瞭如何在聽取鼠標點擊全球,並確定他們是否發生一個.popover之外。

SO answers提及具有全局點擊監聽,破壞所有.popover S和添加點擊監聽到每個酥料餅該暫停事件傳播到全局偵聽器。

但是我想只在全球範圍內定義它一次,而不是每一次我製作的單個彈出。我怎麼做?

回答

0
$('body').click(function(e) { 
    if(!$(e.target).hasClass("popover")) { 
     //if element does not have a ".popover" class => it's outside 
    $(".popover").remove(); 
    } 
}); 

其中e.target是您點擊

0
  1. 您可以創建一個覆蓋整個頁面用z-index -1一個div元素。
  2. 在酥料餅的,你可以把它前面
  3. 註冊酥料餅收盤onclick事件上的div
  4. 在酥料餅接近,把它帶回來的所有元素後面。