3

text_editor という名前の div に tinyMCE テキストエリアがあります。だから私は私の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();
    });

これにより、問題のオーバーヘッドが解決されます。しかし、ユーザーが colorpicker-more colors をクリックすると、新しいウィンドウが開き、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 に答える