2012-01-09 14 views
2

私はこれを使用してjqueryui「トグル」ボタン(別名checkbox)の状態を変更するには、簡単な小道具の呼び出しを使用してい小道具呼び出しで変更しませんスクリプトが正常に動作しています。残念ながら、ボタンの視覚的な状態は変更されていません。それはなぜ、私はそれをそうするために何ができるのですか?jqueryuiボタンの状態は、

例:上記の呼び出しを使用すると、マウスがトグルするときのように見えますが、右はどうなりますか。どのようにテキストが正しいかを確認しますが、視覚的な強調表示はされません。

enter image description here

+0

もう少しコードが参考になります。 – j08691

答えて

11

問題は、ボタンのためのjQuery-UI要素は、トグルボタンから変更イベントをリッスンしていることですが、あなたは.prop('checked', true)を言うとき、変更イベントは発生しません。この動作は、すべてDOM Level 2 Event Modelに戻ります。

変更イベントは、コントロールが入力フォーカスを失ってフォーカスを取得してから値が変更されたときに発生します。このイベントは、INPUT、SELECT、およびTEXTAREAに有効です。素子。何の変更イベントが発生しないようにフォーカスを変更しません.prop('checked', true)(あるいは.attr('checked', 'checked'))を呼び出す

ソリューションは、変更イベントを自分でトリガすることです:jQueryの-UIラッパーは、チェックボックスの状態が変更されましたし、その後のjQuery-UIは、視覚的にも変わることを知らせる必要があります

$("#completed_button").prop("checked", true).change(); 

。ここで

は何が起こっているかを示し、迅速デモです:http://jsfiddle.net/ambiguous/8et3G/

+0

すばらしい返信です!ありがとうございました。 私はそれが簡単な修正であり、なぜ起こったのかについての裏話を書いたことが大好きです。あなたが61.7kの担当者を持っているのも不思議ではない – Brian

関連する問題