動作中の jsFiddle デモ(バージョン 1.8.3)
jQuery 1.9 より前では、以下を操作するためのイベント ハンドラーがありますdata
。
setData
- データを設定するたびに発生
getData
- データを取得するたびに発火
ただし、jQuery サイトにはドキュメントがなく、jQuery 1.9 から削除されています。
$(function () {
$('.milestones-chain').on('setData', function (e, k, v) {
alert('[CHANGED] ' + k + ' : ' + v);
});
$('.milestones-chain').data('expertizes', '12345');
});
このコードを jQuery 1.8 で実行すると、alert
. data
要素にa を設定することによって発生するイベント。ところで、jQuery 1.9 以降では動作しません。
動作中の jsFiddle デモ(バージョン 1.10.1)
この機能を新しいバージョンの jQuery に戻すことができます。
(私はこの質問からそれを取ります: JQuery 1.9 not triggering setData event )。
(function () {
var olddata = $.fn.data;
$.fn.data = function (key, value) {
olddata.call(this, arguments);
if (value !== undefined) $(this).trigger('setData', [key, value]);
};
})();
スクリプトの最初の行に追加するだけです。