2015-04-07 45 views
1

如果我點擊窗外,我想關閉CKEditor。如何檢測ckeditor窗口或其任何小部件外部的點擊?

停止上包圍textarea的一個div傳播通過的CKEditor被替換,像​​這樣

$( '#resumo_div')上單擊(功能(事件){ event.stopPropagation(); })。 ;

然後檢測點擊這似乎主要工作。

例外情況是點擊ckeditor小部件,例如被檢測爲外部的Link小部件。有沒有一個標準的方法來做到這一點?

回答

0

您的問題是事件處理程序將以小部件開始,因爲它們是被單擊的最頂端的元素。當事件到達您的div時,該小部件將被制定。而不是將ckeditor封閉在div中(我的示例覆蓋了單擊時會關閉ckeditor)。將ckeditor移動到div外(覆蓋圖)。

<div class="overlay"></div> 
<div id="ckeditor-container"></div> 

<style> 
    .overlay { 
     position: fixed; 
     width: 100%; 
     height: 100%; 

    } 
    #ckeditor-container { 
     position: fixed; 
     top: 50%; 
     height: 200px; 
     margin: -100px auto 0 auto; /* center the container */ 
    } 
</style> 
+0

我認爲你的建議,我發現在代表一些其他分區點擊而不是試圖確定點擊是不是來自ckeditor或widget。不幸的是,在我的特殊情況下這是不可行的。此外,我也沒有問題的小部件制定:這不是問題。 – jmatos

0

發現How to hide ckeditor when we click outside of the editor?後,我能夠提高貼有該解決方案通過在小部件攔截點擊滿足了我的需求

$('body').click(function(event){ 

    if($(event.target).parents('#articleEditor').length <= 0 && $(event.target).parents('.cke_dialog').length <= 0) 
     $('#articleEditor').hide(); 
}) 
相關問題