この問題に対する組み込みの解決策はありません。これは、設計とコーディングパターンの問題です。
パブリッシャー/サブスクライバーパターンを使用できます。これには、jQueryカスタムイベントまたは独自のイベントメカニズムを使用できます。
最初、
function changeHtml(selector, html) {
var elem = $(selector);
jQuery.event.trigger('htmlchanging', { elements: elem, content: { current: elem.html(), pending: html} });
elem.html(html);
jQuery.event.trigger('htmlchanged', { elements: elem, content: html });
}
これで、divhtmlchanging / divhtmlchangedイベントを次のようにサブスクライブできます。
$(document).bind('htmlchanging', function (e, data) {
//your before changing html, logic goes here
});
$(document).bind('htmlchanged', function (e, data) {
//your after changed html, logic goes here
});
次に、このchangeHtml()
関数を使用してdivコンテンツの変更を変更する必要があります。したがって、情報を含むコールバックデータ引数をバインドするため、必要に応じて監視したり必要な変更を行ったりできます。
このようにdivのhtmlを変更する必要があります。
changeHtml('#mydiv', '<p>test content</p>');
また、これはinput要素を除くすべてのhtml要素に使用できます。とにかく、これを変更して任意の要素で使用できます。