TinyMCE устанавливает содержимое с помощью html () после загрузки jqGrid - PullRequest
1 голос
/ 22 марта 2011

У меня есть jqGrid и редактор TinyMCE на моей странице.

После загрузки сетки я выбираю первый ряд. В функции onSelectRow: я устанавливаю значение редактора с помощью $('#id').html(value_);. Значение является значением внутри одной из ячеек строки.

Моя проблема в том, что когда страница загружается для выбора первой строки, я вижу значение в редакторе только в течение 1 секунды, а затем оно исчезает. (Когда я выбираю строку по щелчку, я вижу значение, даже если я обновляю страницу, я вижу ее. Она не работает, только в первый раз.)

Это мой код:

TinyMCE:

$('#tinymc_id.tinymce').tinymce({
       theme : "advanced",
       theme_advanced_buttons1 : "cut,copy,paste,|,bold,italic,underline,|,undo,redo,|,justifyleft,justifycenter,justifyright,justifyfull,|" ,
       theme_advanced_buttons2 : "formatselect,fontselect,fontsizeselect,|,forecolor,backcolor,|",
       theme_advanced_buttons3 : "",
       theme_advanced_toolbar_location : "top",
       theme_advanced_toolbar_align :    "left",
       plugins :                          "paste"
       init_instance_callback : myCustomInitInstance
});

function myCustomInitInstance(ed)
{
    var s = ed.settings;
    var realID = ed.id;
    tinymce.dom.Event.add(ed.getWin(), 'focus', function(e) {
        if($(realID)) {
        }
    });
    tinymce.dom.Event.add(ed.getWin(), 'blur', function(e) {
        if($(realID)) {
        }
    });
}

Код jqGrid:

   onSelectRow: function(id)
   {
       save_row(lastSel);
       grid.editRow(id,false,'','','','','','','');
       jQuery ('#' + id + '_cell1').focus();
       lastSel=id;
       var _text = grid.getCell(id , "cell2");
       $('#tinymc_id').html(_text);
   },
   loadComplete:function()
   {
       set_selected_row(1);
   }

В чем проблема? Как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 11 мая 2016
$.each($('textarea'),function() {
           if($(this).val() != "") {
               var value = $(this).val();
               $(this).html(value)
           }
        });

попробуйте этот, если он работает

0 голосов
/ 22 марта 2011

Проблема здесь в том, что вы, вероятно, устанавливаете контент textareas с помощью html (). Но редактор находится внутри iframe (где текстовое содержимое отображается в init). Для настройки редактора контента лучше использовать

tinymce.get(editor_id).setContent(html_content);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...