2

お手数をおかけして申し訳ありませんが、私はjqueryが初めてで、これを理解しようとしています。ありがとうございます。

いくつかのコンピューター コンポーネントに基づいたラジオ ボタンのセットで満たされた Web ページがあります。ページの上部に、特定のラジオ ボタンを押すための画像がいくつかあります。私がこれのために持っているJavaScriptは次のとおりです。

$( document ).ready( function() {
$('img#gaming').click(function () {
    $('.small_image').attr("src","../img/GamingPlain.png");
    $('input:radio[name=chasis]')[2].checked = true;
    $('input:radio[name=cpu]')[1].checked = true;
    $('input:radio[name=mobo]')[1].checked = true;
    $('input:radio[name=ram]')[1].checked = true;
    $('input:radio[name=gpu]')[1].checked = true;
    $('input:radio[name=psu]')[1].checked = true;
    $('input:radio[name=hdd]')[2].checked = true;
});
.
.
.
});

これは正しく動作します。また、どのラジオ ボタンが選択されているかに基づいて、ページの一部を変更する必要があります。次のようになります。

$( document ).ready( function() {
$('input[name=chasis]').change(function()  {
    var txt = $(this).parent().text();
    var price = txt.match(/(\$)([\d]+)/)
    $('span#chasisprice').text(price[0]);
});

$('input[name=cpu]').change(function()  {
    var txt = $(this).parent().text();
    var price = txt.match(/(\$)([0-9]+)/)
    $('span#cpuprice').text(price[0]);
});
.
.
.

});

これも正しく動作します。ただし、最初のコード (ユーザーが「img#gaming」をクリック) を使用して個々のラジオ ボタンを自動的に選択すると、2 番目のコードはトリガーされません (別名、変更は登録されません)。

新しく選択したラジオ ボタンを登録する別の形式の .change はありますか? または、変更を登録するラジオボタンを選択する別の方法はありますか?

4

1 に答える 1

3

以下を使用して変更イベントをトリガーできます.trigger()

...
$('input:radio[name=psu]')[1].checked = true;
$('input:radio[name=hdd]')[2].checked = true;

$('input:radio').trigger('change');

また、使用しないでくださいinput:radioinput:radioは CSS セレクターではなく、 でサポートされないdocument.querySelectorため、 よりも実行が遅くなりinput[type="radio"]ます。

レイアウトを再考することをお勧めします。わずかな変更だけで毎回同じコード ブロックを繰り返す必要はありません。

于 2012-12-09T22:32:00.650 に答える