jqueryのlive

適当な自分用のwebアプリ書いてて、まあ普通にjqueryでイベント貼り付けたりなんだりしてたんですが

$(function(){
    $('a.some_class').click(function(e){
         alert('hoge');
    });
});

こういうのだとxhrで動的に読み込んだ要素に対しては実行されないので、そういう要素をクリックしてもイベント発火しないですよね

ひさびさにそれに遭遇して、ああそうだったlive使うんだったわー、と思って書きなおしました。

$(function(){
    $('a.some_class').live('click', function(e){
        alert('hoge');
    });
});

で、動かず。

TypeError: Object [object Object] has no method 'live'

普段jsさわる人は当たり前に知ってると思うので、恥ずかしいんですが、jqueryのlive、1.9で完全に無くなったんですね。

.live() | jQuery API Documentation

というか1.7でもうdeprecatedでしたね。

ドキュメントに書いてありますが1.7+でlive相当のことをやりたい場合はこう書きます。

$(function(){
    $(document).on('click', 'a.some_class',  function(e){
        alert('hoge');
    });
});