3

いくつかのテキストエリアを含む、動的に作成された HTML を含むライトボックスを開く JavaScript があります。私はそれから...

tinyMCE.init({mode: "none", theme: "simple"});
tinymce.execCommand("mceAddControl", true, id);

...ここで、idは特定の 1 つのテキストエリアの ID です。そのテキストエリアが消えるため(突然display:noneがインラインスタイルとして表示されますか?)、 IDが正しいことはわかっていますが、そのインラインスタイルを削除すると、テキストエリアは変更されずに再び表示されますが、tinymceエディターは接続されていません。そのインライン スタイルが適用されているのはなぜですか? また、エディタが添付されていないのはなぜですか?


タリアマの編集

編集 2 - コードにはバグが含まれていましたが、修正後も機能しません...

OK、これは問題を示す例です。

<html>
    <head>
        <script src="jquery.js" type="text/javascript"></script>
        <script src="tiny_mce.js" type="text/javascript"></script>
    </head>
    <body>
        <ul id="list">
        </ul>    
    </body>

    <template id="thingyTemplate">
        <li>
            <label>Email rich text body:</label>
            <textarea rows="8" cols="50" path="bodyRichText" class="wysiwyg"></textarea>
        </li>
    </template>

    <script>

        var newTemplate = $("#thingyTemplate > *").clone();
        $(newTemplate).find("textarea").attr("id", "myTextArea");
        $("#list").append(newTemplate);

        tinyMCE.init({ mode: "none", theme: "simple" });
        tinymce.execCommand("mceAddControl", false, "myTextArea");

    </script>
</html>

ページが読み込まれると、テンプレート要素が表示されますが、リスト内の clone() されたコピーは消えます。ただし、 mceAddControl行を削除すると、テンプレートとそのクローンが表示されます。

4

2 に答える 2

1

「ドキュメント準備完了」への呼び出しを遅らせようとしましたか? DOM が十分に高速でないか、コード内で同じ ID を使用している可能性があります;)

    $(function(){
            tinyMCE.init({ mode: "none", theme: "simple" });
            tinymce.execCommand("mceAddControl", false, "myTextArea");
    });
于 2013-02-08T23:29:16.733 に答える