読者です 読者をやめる 読者になる 読者になる

定食屋おろポン

おろしポン酢と青ネギはかけ放題です

ドットインストール 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");
});