1

このjQuery変更関数に問題があります:

<input type="radio" name="words" value="8" checked><span class="word">word1</span>
<input type="radio" name="words" value="6"><span class="word">word2</span>

$("input[@name='words']:checked").change(function(){
    alert("test");
});

問題は、デフォルトでチェックされている最初のオプション(value = 8)をクリックしたときにのみイベントがトリガーされることです。

他のオプションをクリックしたときにイベントをトリガーするにはどうすればよいですか?

注意:ChromeとFirefoxの両方で上記の機能を試しましたが、同じ問題が発生します。

ありがとう!

4

6 に答える 6

4

する必要があります$("input[name='words']").change(function(){

于 2011-11-09T11:24:28.327 に答える
1

:checkedイベント ハンドラーを要素にバインドするだけです。したがって、最初のものinputにはcheckedプロパティ セットがあるため、イベント ハンドラーを受け取るのはそれだけです。削除する:checkedと正常に動作するはずです:

$("input[name='words']").change(function(){
    alert("test");
});

これが実際のです。@セレクターからキャラクターも削除したことに注意してください。jQuery 1.2 などのように、それは必要ありません。

于 2011-11-09T11:22:43.893 に答える
1
$("input[@name='words']:checked").change(function(){
    alert("test");
});

チェックされているラジオボタンのみに変更機能を登録しました ( :checked)。セレクターから取り外します。

$("input[name='words']").change(function(){
    alert("test");
});

コード: http://jsfiddle.net/DRasw/1/

于 2011-11-09T11:22:51.147 に答える
1
$("input[@name='words']:checked").change(function(){

これは、その名前を持つすべてのinput要素を検索しwords(実際には機能しません。XPath スタイルの@属性セレクターは jQuery 1.3 から削除されました)、チェックされ、イベント ハンドラーをそれらにバインドします。選択時に要素がチェックされていない場合、イベント ハンドラは要素にバインドされません。

最も簡単な解決策は、関連するすべての要素にバインドし、それらがチェックされていない場合にのみコードを起動することです。

$('input[name="words"]').change(function() {
    if (!this.checked) { // checkbox was checked, now is not
        alert('unchecked');
    }
});
于 2011-11-09T11:23:57.260 に答える
1
  1. ラジオボタンの id プロパティを与える
  2. 2 番目の redio ボタンに OnClick="CheckClick()" のプロパティを追加します。
  3. jquery CheckClick() 関数で

    if ($('#rb2').attr('checked')) { alert('rb2 test'); }

于 2011-11-09T11:29:37.337 に答える
1

ワーキングリンク

  $("input[name='words']").change(function(){
alert("test");
 });
于 2011-11-09T11:30:44.840 に答える