2012-07-09 29 views
0

我遇到了與不同模態div上的點擊事件相關的問題。單擊與兩個模態div關聯的事件

我有一個模式股利'A',它顯示了一些信息覆蓋div。這個div通過點擊按鈕A來顯示。所以,當顯示如果我在重疊的div之外單擊時,我希望這個關閉。

我有另一個div'B',它顯示了一些其他信息的覆蓋div。這個div是通過點擊按鈕B來顯示的。所以,當顯示如果我在重疊的div之外單擊時,我希望它關閉。

在這兩種情況下,我都使用$(window).click()來管理它們。

問題是我需要,當我點擊按鈕'A'時,它是相應的div出現,如果我點擊按鈕'B'我想div'A'關閉和div'B'出來和反之亦然。

如何處理多個模態div的多個點擊事件?

Thanks.y

+0

您是否嘗試過使用按鈕A和B的'onClick()'方法來處理?還是有一種方法來確定哪個按鈕觸發了事件? – JAB 2012-07-09 20:44:09

+0

是的,我使用onClick()方法執行此類任務,但需要一種方法或策略來處理多個覆蓋div。 – domoindal 2012-07-09 20:48:07

回答

1

我真的不知道,如果這是你想要的,但是......

假設你的按鈕和申報單(「buttonA」,「divA」,「buttonB」,「divB」等):

$(".overlay").filter(":button").click(function() { 
    var callid = /button(.+)/.exec($(this).attr("id"))[1]; 

    $("div.overlay[id$=" + callid + "]").show(); 
    $("div.overlay:not([id$=" + callid + "])").hide(); 
}) 

示例:http://jsfiddle.net/KXeXj/

唯一的問題是「單擊外部div關閉它」部分;我嘗試使用$(":not(.overlay)").click(function() {$("div.overlay").hide()}),但這似乎不起作用,因爲它只是保持div隱藏任何你點擊。

+0

感謝您的回答。非常好的觀點!我需要適應它,但這正是我所期待的。 – domoindal 2012-07-10 22:35:55

+0

你很受歡迎。很高興我能夠提供幫助。 – JAB 2012-07-11 13:48:28

1

這可能是一個凝視:

$('#buttonA").click(function(){ 
     $(#divA").show(); 
     $(#divB").hide(); 
}) 
+0

我在想這應該是這樣簡單的東西(它會對稱於按鈕B),但我不知道domoindal是否意味着他想要一種方式來遍歷所有覆蓋div div而不必顯式列出它們,並基於該按鈕無需列出所有按鈕。嗯...另外,檢查你的報價標記。 – JAB 2012-07-10 14:33:16