1

私の mvc アプリケーションでは、これらのラジオ ボタンの両方に同じ機能をバインドしています。

$('#Fra').bind('change', function () {
    f_GC();
});

$('#Hea').bind('change', function () {
    f_GC();        
});

これらの数行が機能する方法は、Fra に同じ名前/ID を持つ 2 つのラジオ ボタン (異なる値) があったことです。Hea には、同じ Name / ID を持つ 4 つのラジオ ボタン (異なる値) がありました...

私の理解では、Fra、/ Hea に該当するすべての ID は関数にバインドされるということでした...

これらは最も長い間機能し、いくつかのコードを変更したに違いありません..しかし、6つのラジオボタンすべてを取得してこれらの機能を実行するには、次のようにバインドする必要があります..

$('input:radio[name=Fra][value=' + 1 + ']').bind('change', function () {
    f_GC();  
});
$('input:radio[name=Fra][value=' + 2 + ']').bind('change', function () {
    f_GC();  
});
$('input:radio[name=Hea][value=' + 1 + ']').bind('change', function () {
    f_GC();  
});
$('input:radio[name=Hea][value=' + 2 + ']').bind('change', function () {
    f_GC();  
});
$('input:radio[name=Hea][value=' + 3 + ']').bind('change', function () {
    f_GC();  
});
$('input:radio[name=Hea][value=' + 4 + ']').bind('change', function () {
    f_GC();  
});

この動作の簡単な説明はありますか? Chrome デバッグ ツールは、2 つの構成のいずれにも JS エラーを表示しません。

4

2 に答える 2

0

jQuery doc は ID セレクターについて次のように述べています。

ID を変更したくない場合は、リストの親要素にイベント リスナーを追加し、「デリゲート」スタイルのイベント アタッチメントを使用することもできます。次に、イベント ハンドラーで、イベントを発生させた要素の ID をクエリし、それに応じて動作させることができます。

于 2013-11-05T16:17:40.740 に答える