1.) Вы можете отслеживать изменения HTML аналогично тому, как это делает плагин jQuery livequery .Плагин livequery оборачивает все методы манипулирования DOM jQuery, и когда любой из них вызывается, метод-обертка делает что-то особенное и затем возвращается к исходной функции.Это будет работать только для случаев использования обновления / отмены, при условии, что оба используют один из методов манипулирования DOM jQuery для изменения состояния.
$.each('append', 'prepend', 'after', 'before', 'wrap', 'attr', 'removeAttr', 'addClass', 'removeClass', 'toggleClass', 'empty', 'remove', 'html', function(i, funcName) {
// Short-circuit if the method doesn't exist
if (!$.fn[funcName]) return;
// Save a reference to the original method
var old = $.fn[funcName];
// Create a new method
$.fn[funcName] = function() {
// Call the original method
var r = old.apply(this, arguments);
//Do something special here! Compare the stored html of the fieldset
//to the new html state and update border accordingly
// Return the original methods result
return r;
}
});
2.) Вы могли бы отслеживать этот путь, кажется немного сложным,Без дополнительной информации о вашем сценарии использования и управлении данными трудно что-либо порекомендовать.
3.) Если вы сохранили значение исходного html () в наборе полей, кажется, что оно будет работать дляотменить дело также.Вы можете просто сравнить значение html () после отмены.Однако, если вы создаете кнопку «отменить», мне кажется, что вам нужно будет иметь некоторую историю всех изменений, и как только у пользователя не будет больше отмен, тогда они должны вернуться в исходное состояние и не сравнивать HTML () должно быть необходимо.