3

ユーザーが入力したXMLを含むcontentEditabledivが必要です。各ノードに隠しデータのセットを保存するにはどうすればよいですか?それはカット/ペースト(つまり移動)後も持続しますか?

切り取り/貼り付け中にブラウザによって要素が移動されると想定して、XML内に非表示の要素をネストしてみましたが、削除されます。

各ノードのインデックス/ハッシュを属性として生成し、それをメモリ内のオブジェクトに関連付けるオプションがありますが、使いやすさの理由から、これは避けたいと思います。

これの目的は、XMLをスリム化して、多くの属性を持たせるのではなく、読みやすくすることです。

4

1 に答える 1

1

明らかに、私は十分なテストをしていませんでした。要素に少なくとも1つの属性を指定し、を使用しない限り、カット/ペーストは機能するようですdisplay:none。これで、各ノード内に空の<span>要素を設定して、ノードをメモリ内のオブジェクトに関連付けるための属性にハッシュを格納できるようになりました。

その要素に追加されたデータ$('span').data()は、カットアンドペースト後も保持されませんでしたが、ブラウザがこの時点で明らかに新しい要素を作成するため、これは予想されたものでした。

しかし、私は別の問題に遭遇しました。ノード内でバックスペース/削除を使用すると、要素が削除されることがありますが、これは理想的ではありません。要素をページから完全に離して配置することで、これを解決しました。実際には、かなり直感的に動作するようになりました。要素をラップしているXMLを削除すると要素は削除されますが、それ以外の場合は保持されます。

注:これはChrome(21)でのみテストしたため、他のブラウザーで動作するかどうかはわかりません。誰かがよりエレガントな解決策を共有できるなら、そうしてください。

于 2012-08-25T11:15:03.713 に答える