jQuery Core 1.9 Upgrade Guide | jQuery
http://stage.jquery.com/upgrade-guide/1.9/
そのうち(機械翻訳を駆使して)翻訳するかもしれません。TypeError: $(...).live is not a function
jQuery 1.9では.live()
が削除されている。同じように、.die()
も削除されている。.live()
を、jQuery 1.9で使用しようとすると、以下のようなエラーが出力される。
TypeError: $(...).live is not a function
.live()
は.on()
に、.die()
は.off()
にそれぞれ置き換えられている。以下のように書き直すことで、1.9へ移行する事ができる。
1 2 | $( '.live' ). live ( 'click' , liveFunction); $( '.live' ). die ( 'click' , liveFunction); |
1 2 | $( document ). on ( 'click' , '.live' , liveFunction); $( document ). off ( 'click' , '.live' , liveFunction); |
Error: Syntax error, unrecognized expression
$()
にHTML文字列を渡して解析していたのだが、jQuery 1.9ではエラーになった。jQuery 1.9からは、
$()
に渡す文字列の最初が<
以外の場合はセレクタとしてみなされるようになったためだ。HTML文字列が
<
で始まっていない場合、以下のようなエラーが出力される。
Error: Syntax error, unrecognized expression:この場合、
$.parseHTML()
を用いることで解析することが出来る。以下のように書き直すことで、1.9へ移行する事ができる。
1 2 3 4 | var html_string_1= "<div>hoge</div>" , html_string_2= " <div>HOGE<div>FUGA</div></div>" ; console .dirxml($(html_string_1). get (0)); console .dirxml($(html_string_2). get (0)); |
1 2 3 4 | var html_string_1= "<div>hoge</div>" , html_string_2= " <div>HOGE<div>FUGA</div></div>" ; console .dirxml($($. parseHTML (html_string_1)). get (0)); console .dirxml($($. parseHTML (html_string_2)). get (0)); |
という事でこんな感じにしました。
1 2 3 4 | var html_string_1= "<div>hoge</div>" , html_string_2= " <div>HOGE<div>FUGA</div></div>" ; console .dirxml($($. parseHTML (html_string_1)). get (0)); console .dirxml($($. parseHTML (html_string_2. trim ())). get (0)); |
1 2 3 4 | var html_string_1= "<div>hoge</div>" , html_string_2= " <div>HOGE<div>FUGA</div></div>" ; console .dirxml($($. parseHTML (html_string_1)). get (0)); console .dirxml($($. parseHTML (html_string_2.replace(/^[^<]+/, '' ))). get (0)); |
0 件のコメント:
コメントを投稿