ページが実質的に読み込まれるまでトリガーを無効にするためにクラスを使用していたページがあります。クリップの例:
$('body').addClass('disable');
// mark unsaved changes
$('body:not(.disable)').on('change', '.CE', function(ev) {
// mark_if_changed() is at the bottom of this file
mark_if_changed($(this));
});
[...トリガーを起動せずにほとんどの動的コンテンツをロードします...]
$('body').removeClass('disable');
トリガーのポイントは、CEクラスのフィールドが変更されたときにデータベースを更新することです。上記を使用すると、機能しません。
「:not(.disable)」を削除すると、変更が更新されますが、最初のページの読み込み中に多くの不要なコールバックが呼び出されます。
jQuery 1.7では、.live()を使用して機能しました。1.9では、.on()を使用して機能しません。:not()を削除して、「disable」がクラス属性のメンバーであるかどうかをテストできますが、問題を修正するのではなく、ダクトテーピングのように感じます。
https://dragonstone-mill.com/tabbed.htmlは、私が使用しているページです。
上記のすべては、$(document).ready()に続いて整然と呼び出されます。関数とバインディングをロードするtabbed.htmlの〜ln:103を参照してください。
これを行うためのより良い/より正しい方法はありますか?