2011-03-22 27 views
1

我在頁面中有jqGrid和TinyMCE編輯器。加載jqGrid後用TinyMCE設置html()的內容

網格加載後,我選擇第一行。 在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); 
    } 

問題是什麼?我該如何解決它?

回答

0

這裏的問題是,你可能使用html()設置textareas內容。但編輯器位於iframe內(textareas內容在init中顯示)。要設置編輯內容更好地利用

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

@Thariama:感謝的,但它並沒有爲我工作,而不是我加入的OnInit:到TinyMCE的初始化,並呼籲$( '#tinymc_id')HTML(_text);在裏面。解開HTML()是worng? – user590586 2011-03-22 12:03:40

+0

使用html並沒有錯,這取決於'#id'的含義,但是tinymce API提供了標準方法 - 使用這些標記的方法始終是安全的 – Thariama 2011-03-22 12:09:17

+0

'#id'具有什麼作用? – Thariama 2011-03-22 12:09:40

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

試試這一個,如果它的工作