ドットインストール Ruby on Railsの基礎 #36 でAjaxによるPost削除処理が動かない
メモ
$('a[data-method="delete"]').live('ajax:success', function(e, data, status, xhr) { $('#post_'+data.post.id).fadeOut("slow"); });
data-method="delete"って属性を持つaタグに、イベントハンドラを設定するコード。
JSデバッガコンソールに'undefined is not a function'とのエラーが表示され、正しく動作しなかった。
jQuery v1.9.0では、jQueryオブジェクトのliveメソッドが非推奨を経て削除されており、定義されていない(undefined)ため。
live関数の代わりに追加されたon関数を使う。
書き直すと以下のようになる。
$(document).on('ajax:success', 'a[data-method="delete"]', function(e, data, status, xhr) { $('#post_'+data.post.id).fadeOut("slow"); });