2012-12-04 91 views
0

我的$(document).click有問題。

我目前正在處理的頁面上方有一個用戶欄。右上角是一個包含當前登錄用戶的用戶名的框。點擊它打開一個對話框,註銷,我的個人資料等。一些鏈接基本上,就像Facebook一樣。

您可以通過再次單擊該框或單擊文檔($(document).click)來關閉此彈出框。

它適用於Chrome,但Firefox有一些問題。 Firefox將這個盒子本身解釋爲「文檔」,並在點擊該框後立即關閉。這很愚蠢,因爲我確實有鏈接,我無法點擊它們,因爲FF在點擊時關閉了框。

任何想法如何找到解決方法?

編輯:一些代碼

$(文件)。就緒(函數(){

/* 
***** user options popup ***** 
*/ 

$("#userputrigger").click(function() { 
    if ($("#userpopup").length > 0) 
    { 
     $("#userpopup").remove(); 
     $(".arrop").attr("src","/img/arrowd.png"); 
     $('#userputrigger').attr("title", "Show options"); 
     $(".pass").toggleClass("act"); 
    } 
    else 
    { 
     $(".ui").append('<div id="userpopup"><div class="options"><table cellpadding="0" cellspacing="0"><tr><td class="icon"><img src="img/user.png" width="16" height="16" alt="My profile" /></td><td><a href="#">My profile</a></td></tr><tr><td class="icon"><img src="img/settings.png" width="16" height="16" alt="Settings" /></td><td><a href="#">Settings</a></td></tr><tr><td class="icon"><img src="img/calendar.png" width="16" height="16" alt="Watchlist" /></td><td><a href="#">Watchlist</a></td></tr><tr><td class="icon"><img src="img/prizeicon.png" width="16" height="16" alt="My contests" /></td><td><a href="#">My contests</a></td></tr><tr><td class="icon"><img src="img/music.png" width="16" height="16" alt="My beats" /></td><td><a href="#">My beats</a></td></tr><tr><td class="icon"><img src="img/coins.png" width="16" height="16" alt="Balance" /></td><td><a href="#">Balance</a></td></tr><tr class="last"><td class="icon"><img src="img/logout.png" width="16" height="16" alt="Logout" /></td><td><form action="" method="post"><input type="submit" value="Logout" /><input type="hidden" name="logout" value="1" /></form></td></tr></table></div></div>'); 
     $(".pass").toggleClass("act"); 
     $(".arrop").attr("src","/img/arrowuact.png"); 
     $('#userputrigger').attr("title", "Hide options"); 
    } 
    return false; 
}); 

$('#userpopup').click(function(e) { 
    e.stopPropagation(); 
}); 

$(document).click(function() { 
    if ($('#userpopup').is(':visible')) 
    { 
     $(".arrop").attr("src","/img/arrowd.png"); 
     $("#userpopup").remove(); 
     $(".pass").toggleClass("act"); 
     $('#userputrigger').attr("title", "Show options"); 
    } 
}); 

});

它實際上工作的鏈接,但沒有提交按鈕「註銷」。它只是在Firefox上關閉。

謝謝:)

+2

你不應該使用點擊文檔事件,而不是你應該把一個id箱形端使用$(「#box_id」)。點擊() – SmasherHell

+0

怎麼樣一些示例代碼? – Chris

+0

通常人們所做的就是放置一個背景DIV,該DIV可以用最上面的設置阻止整個屏幕。然後,如果您點擊背景DIV,則與點擊窗口相同。所以看看如何使用lightbox類型的東西。 – Cymen

回答

2

假設你點擊類「設置」的div。 以下內容將阻止文檔點擊傳播。

$('.settings').click(function(e) { 
    e.stopPropagation(); 

    ...your stuff here... 
}); 
相關問題