2010-10-19 32 views
1

我已將jQuery工具的Overlay effect添加到我的網站,使用「最小安裝」。不幸的是,當用戶想要關閉它時,他必須瞄準右上角的這個小圓圈。可用性受這種方式的影響。如果用戶只需點擊任何地方關閉它就會好得多。如何關閉jQuery工具疊加點擊,無論在哪裏?

我是否可以修改或添加一些代碼,以便無論用戶點擊何處都會關閉覆蓋圖?或者,當他在疊加層之外點擊時?我無法在文檔中找到任何關於此的註釋。

回答

4

或者,也許當他點擊重疊之外?
檢查the docs( '配置' 部分):

closeOnClick(默認值:true)
默認情況下,當單擊覆蓋區域外的鼠標覆蓋時關閉。將此屬性設置爲false會抑制適用於模態對話框的此行爲。

即,該功能在默認情況下已經啓用。如果它不工作,您可能想向我們展示您的覆蓋配置。

+0

+1猜我懶惰不看文檔:p – BGerrissen 2010-10-19 11:16:01

+0

@BGerrissen我剛剛剛剛發現使用這個軟件包,所以我已經知道去哪裏看看:) – 2010-10-19 11:18:05

+0

他們在這裏做了什麼:http:// flowplayer.org/tools/demos/overlay/index.html - 在疊加層外單擊時,默認情況下完全不會關閉。至少不是在他們自己的示例網站上;) – 2010-10-19 17:13:05

0

嘗試(快速和骯髒的):

$(document).click(function(){ 
    $('.simple_overlay:visible .close').click(); 
}); 
4

@NikitaRybak closeOnClick只適用於使用曝光/遮罩。我已經修改了覆蓋代碼沒有公開/口罩工作..

整齊精縮的JavaScript .. 在縮小的代碼中找到此:

b.closeOnClick && a(document).bind("click." + n, function(l) { 

並插入到這個功能,而不是

if (!a(l.target).hasClass('overlay') && !a(l.target).hasClass('apple') && !a(l.target).parents('.overlay', f).length && !a(l.target).parents('[rel="#' + a(f).attr('id') + '"]').length && !(a(l.target).attr('rel') == '#' + a(f).attr('id'))) { c.close(l); } 

現在,如果你使用蘋果的影響,在蘋果效應代碼中找到這樣的:

b = h('<img src="' + b + '"/>'); 

並插入類=「蘋果」,所以它變成了:

b = h('<img class="apple" src="' + b + '"/>'); 

希望這有助於如果有人需要它..

+0

+1更多信息 – 2011-03-09 16:59:20

+0

對我來說,這段代碼立即打開和關閉疊加層。似乎有一些錯誤(我懷疑jQuery庫,因爲.parents(f)行爲怪異)。默認疊加在另一個頁面中正常工作。 :( – 2013-04-17 15:00:34

0

在我的實驗,我發現,即使official jQuery Tools standalone demo正確不緊密覆蓋。例如,當我點擊覆蓋圖像下方時,它會關閉,但當我點擊覆蓋圖的右側或左側時,它不會關閉。

所以,在我的情況下,我用一個解決方案,以在單擊關閉覆蓋的任何地方文件:

<script type="text/javascript"> 
    function closeOverlay(){ 
     $('.overlay:visible .close').click(); 
    } 
    document.addEventListener('click',closeOverlay,true); 
</script> 

可能是它的骯髒太多,但它爲我工作。

+0

這一個不適合我,因爲我想排除疊加層內部的點擊。 – 2013-10-09 22:39:53