KonifarPod

jQueryのprop()はchangeイベントが発火しない

   

Pocket

jQueryでチェックボックスの値を書き換える場合、1.3以降はattr()ではなくprop()を使うみたいです。

$(':checkbox').prop('checked', true)

しかし、prop()を使った場合、changeイベントが発火しません。Backbone.jsなどを使ってobserverパターンで実装していた場合、このままだとイベントがキャッチされません。なので、triggerを使って明示的にchangeイベントを発火してあげる必要があります。

$(':checkbox').prop('checked', true).trigger('change')

 

このやり方で、とりあえずうまくいきました。しかしprop()でchangeイベントが発火しないなんてそもそも仕様上すごい微妙な気がするんですが、何か書き方が間違ってるんですかね?何かいいやり方があるなら教えてほしいです。。。

Pocket

 - Develop ,