2012-02-06 3 views
0

私はこのwysiwygエディタhttp://www.innovastudio.com/に貼り付けられています。innovaeditor - ダイナミックリンク上のクリックをクリック

リンクをクリックして複数のエディタをページに追加しようとしています。私のコードを見てください。

var times_clicked = 1; 
    $("#add_more_stuff").click(function(){ 
     times_clicked++; 
     var a = times_clicked; 
     console.log(a); 
     $('<textarea id="editor'+a+'" name="lesson"></textarea>').appendTo('body'); 
     $('<script>var oEdit'+a+' = new InnovaEditor("oEdit'+a+'"); oEdit'+a+'.REPLACE("editor'+a+'");<\/script>').appendTo($("#e")); 
    }); 

これは1つのエディタとページ全体を吹き飛ばします。 これは、このエディタでは実行できない場合は、動的追加をサポートする他のエディタがあります。

答えて

1

私もこの問題に遭遇しました。それを機能させるには、div置換を使用する必要があります。また、これが機能するには、oEditをページスコープで宣言する必要があります。変数を関数に宣言しても機能しません。あなたが関数内でそれを宣言する場合は、例えば、ブラウザのウィンドウオブジェクトにrefernceを追加する必要があります。

window["oEdit1"] = new InnovaEditor("oEdit1"); 
window["oEdit1"].REPLACE("textarea id", "myEditor"); 

を今ここであなたの変更されたコードは、それを行うには醜い方法の(一種ですが、あなたの例のために):

var times_clicked = 1; 
$("#add_more_stuff").click(function(){ 
    times_clicked++; 
    var a = times_clicked; 
    console.log(a); 
    $('<textarea id="editor'+a+'" name="lesson"></textarea><div id="div_editor'+a+'"></div>').appendTo('body'); 
    $('<script>window["oEdit"'+a+'"] = new InnovaEditor("oEdit'+a+'");window["oEdit"'+a+'"].REPLACE("editor'+a+'","div_editor'+a+'");<\/script>').appendTo('body'); 
}); 

...とそれはそれだ、それはこのように動作するはずです...

関連する問題