プロトタイプは私たちに、このためにほぼ完璧ですが、別のハッシュとの差を算出する方法を欠いているので、のはそれを追加してみましょうHash
クラスを提供します...
Hash.prototype.difference = function(hash)
{
var result = this.clone();
hash.each(function(pair) {
if (result.get(pair.key) === undefined)
// exists in hash but not in this
result.set(pair.key, pair.value);
else if (result.get(pair.key) == pair.value)
// no difference so remove from result
result.unset(pair.key);
// else exists in this but not in hash
});
return result;
};
これがあれば教えする方法はありませんCSS3が複数の背景やトランジションのような複雑さを加えるので、クリックした座標を見つけることができますが、それは絶対ではありません。ボタンとして機能するように絶対配置された要素を持つ方がよいでしょう。
$('button-element').observe('click', function() {
var form_values = $H($('form-id').serialize(true));
if (old_values) {
var differences = old_values.difference(form_values);
if (differences.size()) {
showDiffPopup(differences);
}
}
window.old_values = form_values;
});
// preset current values in advance
window.old_values = $H($('form-id').serialize(true));
残っているのは、計算differences
を表示するshowDiffPopup
を実装することです。
何が変更されましたか?ページ、テキストエリア、フォームイメージ? –
私の編集を参照してください..... – awsome
私はなぜこの質問がdownvotedされているかについてのコメントを残すことなくこの質問をdownvoteすべきか分かりません。 – awsome