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

加载jqGrid后,使用html()设置内容,jqgrid,tinymce,Jqgrid,Tinymce,我的页面中有jqGrid和TinyMCE编辑器 加载网格后,我将选择第一行。 在onsetow:函数中,我使用$('#id').html(value#)设置编辑器值。该值是一个行单元格内的值 我的问题是,当为第一行选择加载页面时,我只能在编辑器中看到值1秒钟,然后它消失了。(当我在单击时选择行,我可以看到值,即使我刷新页面,我也可以看到。它不工作,只是第一次。) 这是我的代码: 蒂尼姆斯: $('#tinymc_id.tinymce').tinymce({ theme : "adv

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

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

我的问题是,当为第一行选择加载页面时,我只能在编辑器中看到值1秒钟,然后它消失了。(当我在单击时选择行,我可以看到值,即使我刷新页面,我也可以看到。它不工作,只是第一次。)

这是我的代码:

蒂尼姆斯:

$('#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);
   }

有什么问题?如何解决此问题?

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

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

如果它能工作,试试这个

@Thariama:thank's,但它对我不起作用,相反,我在tinymce init中添加了oninit:,并命名为$('tinymc_id').html(_text);里面。unsing html()是否有效?根据“#id”所包含的内容,使用html并没有错,但tinymce API提供了一些标准方法-使用这些方法总是安全的,这就是我的想法。如果您的页面上只有一个编辑器,则可以使用以下编辑器使其正常工作:tinymce.editors[0].setContent(value_)@塔里亚马:所以在这种情况下使用它是不好的?我不明白。如果我的页面中有两个编辑器错误呢?那么您需要使用编辑器id:tinymce.get(editor\u id).setContent(html\u content);。这是因为tinymce.editors将页面上的所有编辑器保存在一个数组中;使用tinymce.editors[0]可能会选择错误的编辑器
$.each($('textarea'),function() {
           if($(this).val() != "") {
               var value = $(this).val();
               $(this).html(value)
           }
        });