如果我點擊窗外,我想關閉CKEditor。如何檢測ckeditor窗口或其任何小部件外部的點擊?
停止上包圍textarea的一個div傳播通過的CKEditor被替換,像這樣
$( '#resumo_div')上單擊(功能(事件){ event.stopPropagation(); })。 ;
然後檢測點擊這似乎主要工作。
例外情況是點擊ckeditor小部件,例如被檢測爲外部的Link小部件。有沒有一個標準的方法來做到這一點?
如果我點擊窗外,我想關閉CKEditor。如何檢測ckeditor窗口或其任何小部件外部的點擊?
停止上包圍textarea的一個div傳播通過的CKEditor被替換,像這樣
$( '#resumo_div')上單擊(功能(事件){ event.stopPropagation(); })。 ;
然後檢測點擊這似乎主要工作。
例外情況是點擊ckeditor小部件,例如被檢測爲外部的Link小部件。有沒有一個標準的方法來做到這一點?
您的問題是事件處理程序將以小部件開始,因爲它們是被單擊的最頂端的元素。當事件到達您的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>
發現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();
})
我認爲你的建議,我發現在代表一些其他分區點擊而不是試圖確定點擊是不是來自ckeditor或widget。不幸的是,在我的特殊情況下這是不可行的。此外,我也沒有問題的小部件制定:這不是問題。 – jmatos