3

jQuery 1.7.2/1.8.2(以前のバージョンをテストしていませんでした)問題が発生しており、prop('checked')一貫性のない値が返されているようです。

チェックされていないチェックボックスが2つあります。

<input id="input1" type="checkbox"/>
<input id="input2" type="checkbox"/>​

私が呼ぶとき、私に$('#input1').click()与えます。手動でクリックすると、が表示されます。問題を示すショーを作成しましたreadyprop('checked')false#input2truejsFiddle

これがどのようにトリガーされたかに関係なく、メソッドがイベントハンドラーprop('checked')内で一貫した方法でデータを返すことを期待しますが、そうではないようです。click

私は何かが足りないのですか?これは既知のバグですか?これがどのようにトリガーされたかに関係なく、ハンドラー内に一貫した.prop('checked')データを保持するために利用できる回避策はありますか?click

FF 15.0.1PS: 、、でテストしましChrome 21.0.1180jQuery 1.7.2 and 1.8.2。問題は私が使用するかどうかにかかわらず同じ.click(です.on('click'

4

1 に答える 1

3

.click()一貫性のない動作の理由は、要素をクリックすることと実際にクリックすることの違いです。実際にクリックするとchecked状態が変わります.click()が、jQueryにバインドされたハンドラーを実行するだけです。

したがって、要素をクリックすると、チェックされているかどうかが変わり、新しい状態が通知されますが、トリガーメカニズムを使用すると、既存の状態のみが通知されます。

于 2012-09-24T12:43:26.197 に答える