2013-03-14 4 views
3

У меня есть текстовое поле wysiHtml5 на всплывающее окно, которое показано через ColorBox:не удается получить в wysihtml5 текстовую область в ColorBox после того, как окно было закрыто и вновь

$j.colorbox({ 
       inline: true, 
       href: "#popup", 
       scrolling: false, 
       onLoad: function() { 
        $('#cboxClose').remove(); 
       }, 
       onCleanup: function() { 
        $j("div#popup").hide(); 

       }, 
       onClosed: function() { 
        editor = null; 
       }, 
       onComplete: function() { 

        var editor = new wysihtml5.Editor("wysiwygText", { // id of textarea element 
         toolbar: "wysihtml5-toolbar", // id of toolbar element 
         parserRules: wysihtml5ParserRules, // defined in parser rules set 
         stylesheets: ["Styles/wysihtml5.css", "Styles/wysihtml5.css"] 
        }); 


       } 
      }); 

Редактор отлично работает первый время всплывает цветной код. Но если он закрыт и снова открыт, пользователь не может щелкнуть в редакторе.

Интересно, может ли это сделать со мной, пытаясь воссоздать объект редактора? Проблема в том, что если я создам ее до запуска colorbox, редактор будет «сломан» при запуске colorbox. (т. е. если я установил #popup для видимости, я могу отредактировать его, когда загружается страница, но когда я запускаю окно с цветом, я снова не могу редактировать содержимое.

Поведение в том, что я вижу текст область, но я не могу «щелчок» его.

ответ

2

Это может не помочь вам, но у меня возникла такая проблема .. I должен был создать редактор после того, как элемент был установлен в диалоговом окне.

   $(".addtext").click(function(){ 

        $("#editorcontainer").dialog({ 
         width: 737 
        }); 

        (function($){ 
         $("#wysihtml5-textarea").wysihtml5(); 
        })($1_7_2); 

       }); 

Единственная проблема - дублирование редактора wysihtml5 с параллельными открытиями диалога. Я отправлю сообщение, когда я это исправлю.

Редактировать: Я, вероятно, должен потратить время, чтобы пройти через код wysihtml5, чтобы действительно понять, что происходит, но я не могу тратить на него слишком много времени. Я заметил, что редактор создавал элементы dom каждый раз при вызове wysihtml5(). Это создавало дублированные элементы, поэтому идея состоит в том, чтобы использовать элемент контейнера и создавать его внутреннее содержимое при открытии диалога и уничтожать его внутреннее содержимое, когда диалог закрыт. На стороне примечание, я действительно ненавижу, когда программисты не документируют свои проекты.

//button click event 
$(".addtext").click(function(){ 
     $("#editorcontainer").dialog({ 
      width: 737, 

      open: function(event, ui){ 
        //create inner html 
        $(this).html("<form><textarea id=\"wysihtml5-textarea\" \ 
        placeholder=\"Enter your text ...\" \ 
        autofocus></textarea></form>"); 
      }, 

      close: function(event, ui){ 
        //remove inner html 
        $(this).html(""); 
       } 

      }); 

      //older version of jQuery aliased to $1_7_2 
      (function($){ 
       //invoke the editor 
       $("#wysihtml5-textarea").wysihtml5(); 
      })($1_7_2); 

}); 
+0

Было ли это с JQuery Dialog? (Не пробовал это еще, но это был мой следующий шаг) – Ben

+0

Да, это так. Fyi, я использую bootstrap-wysihtml5. [Link] (https://github.com/ jhollingworth/самозагрузки-wysihtml5) – MageNewbie

0

Что делать, если вы удалите эту функцию, а не уничтожить экземпляр редактора, когда всплывающее окно закрывается.

onClosed: function() { 
    editor = null; 
} 

есть ли у вас какие-либо ошибки в javascript console?

+0

Нет - проблема, если я удалю функцию onClosed. :-( – Ben

 Смежные вопросы

  • Нет связанных вопросов^_^