aloha-editor 用のテーブル プラグインを用意しました。これは、新しいテーブルを作成するときに、行と列の選択に使用される追加のスタイルと追加のセルを配置します。テーブルが作成されると、イベントがテーブルに添付されます。これにより、エディターがフォーカスから外れると余分なスタイルが削除され、最終的な HTML に収まりません。現在、これはすべてうまく機能しています。
私が抱えている問題は、エディターの HTML ソースを編集できる別のプラグインにあります。この場合、ライトボックスに を作成し<textarea>
ます<div>
。次に、エディターのコンテンツを取得し、ソースを編集できるテキストエリアに配置します。ソースが変更されると、メイン ページのエディターのコンテンツがテキストエリア バージョンに置き換えられます。
次に起こることは、テーブルが新しいものに置き換えられたため、テーブルに関連付けられていたイベントが失われることです。したがって、余分なテーブル セルとスタイルはテーブルに残ります。
ここからの最善の行動方針はわかりません。
テーブル プラグインがイベントにバインドする方法の例は次のとおりです。
Aloha.bind('aloha-editable-activated', function (__event__, data) {
that._splitcellsButton.enable(false);
that._mergecellsButton.enable(false);
that._splitcellsRowButton.enable(false);
that._mergecellsRowButton.enable(false);
that._splitcellsColumnButton.enable(false);
that._mergecellsColumnButton.enable(false);
data.editable.obj.find('table').each(function () {
var registry = TablePlugin.TableRegistry;
for (var i = 0; i < registry.length; i++) {
if (registry[i].obj.attr('id') === jQuery(this).attr('id')) {
registry[i].activate();
return true;
}
}
// Because table this is a new table that is not yet in the
// registry.
createNewTable(this);
});
});