0

次のように、どのラジオ ボタンが選択されているかを変更する JavaScript 関数を含むページがあります。

if ($('#tables').hasClass('radiobuttons')){
    var tables = $('#tables').find('table'),
        rows = tables.find('tr'),
        radios = $('input[type="radio"]');

    rows.live('click', function(){
        var clicked = $(this);
        clicked.find('input[type=radio]').attr('checked', true);
        clicked.parent().find('tr').removeClass('selected');
        clicked.addClass('selected');
    });
}

基本的に、これにより、ユーザーはテーブル内の行の任意の場所をクリックできるようになり、対応するラジオ ボタンが選択されます。

すべてのラジオ ボタンにはonchangeイベントが関連付けられていますが、ラジオ ボタンがこの方法で選択されている場合、関数は呼び出されません。

<input type="radio" onchange="someFunction();" name="myradiobutton" value="123">

onchange イベント以外で値が変更されたことを検出するにはどうすればよいですか?

4

2 に答える 2

1

ラジオ ボタンに属性を設定する代わりに、代わりにクリック イベントをトリガーしてみてください。

clicked.find('input[type=radio]').trigger("click");

または、実際のラジオ ボタンの代わりに (またはラジオ ボタンに加えて)、クリック イベント ハンドラーをユーザーがクリックする行にバインドしてみてください。

于 2012-06-11T17:39:36.160 に答える
0

イベントを発生させたターゲット要素を探して、それに応じて決定できます。イベントハンドラーの最初の引数であるイベントオブジェクトを使用して、ターゲット要素を取得できます。

rows.live('click', function(e){
    if($(e.target).is(':radio'){
        //radio button clicked
    }
});
于 2012-06-11T17:38:40.053 に答える