0

私はこれを持っています

$('input[type=radio][name="voucher_type"]').live('change', function() {
//stuff here
});

したがって、ラジオボタンがクリックされると、事態が発生します。ラジオボタンは、背景画像などの大きなボタンとしてスタイル設定されたdiv内にあります。

問題は、ユーザーが画像をクリックして、ボタンをクリックすることを期待することです。ラジオをチェックすることがわかっているラベルを使用できないので、以下のコードを試しました。

    $('div.voucher_box').click(function(){
    $(this).children('input').attr("checked", "checked");
    $(this).closest("input").trigger('click');
});

divクラスのvoucher_boxがクリックされると、ラジオボタンでクリック/変更イベントがトリガーされ、ラジオが変更されたときに実行されるすべてのコードが実行されることを期待していました。

誰かが何が悪いのかわかりますか?ありがとう。

4

1 に答える 1

2

イベントをバインドしている場合は、イベントchangeをトリガーする必要がありますが、トリガーする必要はありchangeませんclick

$('div.voucher_box').click(function() {
    $(this).children(":radio").prop("checked", true).trigger("change");
}

jQueryバージョン1.7以降、この.live()メソッドは非推奨になっていることに注意してください。.on()イベントハンドラーをアタッチするために使用する必要があります。

于 2012-05-10T12:25:50.667 に答える