ページ上のオブジェクトの束を無効にしてから、後で再び有効にします。それらのうちのいくつかはボタンではなくタグなので、onclick attrを削除することで無効にします。私は古いハンドラを.data()に格納しようとしましたが、残念ながら$(obj).attr('onclick',$(obj).data('onclick'))
で復元しようとすると、属性に復元するのではなく関数を呼び出します。そして、データの代わりに別の属性に格納しようとすると、関数が格納されず、関数の戻り値が格納されます。jQueryオブジェクトの "onclick"アクションを保存して復元します。
再書き込みすべてのタグと私のページ上のすべてのonclickハンドラをせずにこれを実現する方法はありますか?
if(doEnable) {
$(obj).attr('href', $(obj).data('href'));
$(obj).attr('onclick', $(obj).data('onclick'));
$(obj).removeClass(EIS.config.classes.disabled);
$(obj).show();
}
else {
// Save the things you're going to remove
$(obj).data('onclick', $(obj).attr('onclick'));
$(obj).data('href', $(obj).attr('href'));
$(obj).prop("href", null);
$(obj).prop("onclick", null);
$(obj).addClass(EIS.config.classes.disabled);
$(obj).show();
}
ところで、このコードはChromeとFirefoxではうまく機能しているようですが、IE8ではうまく動作せず、IE6では決して動作しません。残念ながら、クライアントはIE6で最初にテストします。
Javascriptメソッドを使用するのが最も簡単な変更であり、動作するようです。 –