2012-10-27 106 views
1

我在bootstrap中使用了一個彈出窗口,我希望它在用戶單擊屏幕上其他任何地方時關閉。我的代碼是這樣的:Javascript onclick函數問題

$('#popover').bind('click', function() { 
    $(".popover").live('click', function(){ return false; }); 
    $(document).one("click", function() { 
     alert('click'); 
    }); 
}); 

問題是點擊按鈕觸發警報。出於某種原因,javascript使用該點擊來啓動該功能並觸發其內部的點擊事件。我究竟做錯了什麼?

編輯:

此代碼沒有做任何事情:

$(".popover").live('clickoutside', function(){ 
     alert('click'); 
    }); 
+0

它不會自動關閉?在您的JavaScript控制檯中是否有任何錯誤? –

回答

0

查閱這些:

如果您.popover裏面#popover,你觸發所有受影響的元素的事件。


注: jQuery的live被貶的過程中,使用的替代品:

+0

直到單擊#popover按鈕時纔會創建.popover div。我不明白如何使用您提供的鏈接。 –

+0

從您的代碼中,您不是「創建」「.popover」!當您點擊「#popover」元素時,您只需「附加事件」(點擊事件)。 – 2012-10-27 23:52:33

+0

不,在單擊#popover之前,.popover元素不存在。這就是自舉popover的工作原理。 –