3

我有一个 tinyMCE textarea,在名为 text_editor 的 div 中。所以我在我的 jQuery 中有:

$('#text_editor').hover(function(){ 
           mouse_is_inside=true; 
   }, function(){ 
           mouse_is_inside=false; 
   });

$('body').mouseup(function(){
    if(! mouse_is_inside){
            $('#text_editor').hide();

    }
});

当用户在 div 文本编辑器外部单击时,它会隐藏,但如果用户选择字体系列或字体大小,文本编辑器会隐藏,所以我在我的 jQuery 中添加:

$(document).on('click', '.mceMenuItem, .mceColorSplitMenu, .mceBottom, .mceMoreColors', function(e){
       e.stopPropagation(); 
       $('#text_editor').show();
    });

这解决了开销问题。但是,如果用户单击颜色选择器-更多颜色,则会打开一个新窗口,并且 text_editor 会隐藏,而我不希望这样。

4

1 回答 1

1

演示

var $editor = $('#text_editor');

$('textarea').click(function(e){
  e.stopPropagation();
  $editor.fadeTo(400,1);
});


$('body').on('click', function ( e ) {
  if( !($(e.target).is('#text_editor')) && $editor.is(':visible') ){
    $editor.hide();
  }
});
于 2012-08-22T10:14:12.357 回答