加载jqGrid后,TinyMCE使用html()设置内容

时间:2011-03-22 10:06:56

标签: jqgrid tinymce

我的页面中有jqGrid和TinyMCE编辑器。

加载网格后,我选择了第一行。 在onSelectRow:函数中,我使用$('#id').html(value_);设置了编辑器值。该值是其中一个行单元格内的值。

我的问题是当第一行选择加载页面时我只能看到编辑器内的值1秒钟然后它就消失了。 (当我选择行onclick时,我可以看到该值,即使我刷新页面,我也能看到它。它不起作用,只是第一次。)

这是我的代码:

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 :(得分:0)

这里的问题是您可能使用html()设置textareas内容。但是编辑器位于iframe内部(其中textareas内容在init上显示)。要更好地设置编辑器内容,请使用

tinymce.get(editor_id).setContent(html_content);

答案 1 :(得分:0)

$.each($('textarea'),function() {
           if($(this).val() != "") {
               var value = $(this).val();
               $(this).html(value)
           }
        });

尝试这个,如果它的工作