3 つの水平タブがあるページがあります。タブをクリックすると、div にフォームが動的に入力されます。ビューのレンダリングを管理するために BackboneJS を使用しています (関連性があるかどうかはわかりません)。ビューで render() を呼び出すとき、要素の html を設定した後、tinyMCE をテキスト領域に適用する呼び出しを行います。
$('#text_' + this.model.id, this.$el).tinymce({
script_url : '/lib/tinymce/tinymce.min.js',
theme : "modern",
content_css: "/css/bootstrap.min.css",
menubar: false,
toolbar: "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | " +
"bullist numlist outdent indent | link image | forecolor backcolor emoticons",
setup: function(editor) {
editor.on('change', function(e) {
var change = {};
change["content"] = e.level.content;
self.model.set(change);
});
}
});
これは、最初は完全に正常に機能します。ビューが削除されると.tinymce().remove();
、次のビューを表示する前にエディターを適切に削除するためにフィールドに適用されるイベントが呼び出されます。次のビューがレンダリングされます。これは同じビューですが、モデルが異なります。これとその後のすべての呼び出しで、tinyMCE はテキストエリアを非表示にし、エディターを表示しません。ビューが機能することはわかっています. render() で .tinymce() 呼び出しをコメントアウトすると、すべてが意図したとおりに機能します。TinyMCE はどこかでつまずきます。どんな洞察も高く評価されます。