32

javascript/jqueryを使用してチェックボックスで変更イベントをトリガーすることは可能ですか?

このようなもの(ボタンをクリックするとtriggerChangeを実行します):

<label><input type="checkbox" id="chk"/>Label for chk</label>

<script>
function triggerChange(){
    $("#chk").trigger("change");
}
</script>

上記のコードを実行すると、「トリガーは関数ではありません」というエラーが表示されます。

4

5 に答える 5

31

このtrigger is not a functionエラー メッセージは、他の何かが原因であることを示しています。このSOの質問によると:

jQuery セレクターが見つからない場合はどうなりますか?

no.good.at.coding言います:

ただし、セレクターが jQuery オブジェクトであることを確認する必要があることに注意してください。そうしないと、「トリガーは関数ではありません」というエラーが発生する可能性があります。

jQuery を忘れている可能性がありますか?


実装に関しては、使用方法に問題がないはずです。ただしtrigger、jQuery を介して既にアタッチされている要素のイベント メソッドをトリガーするために使用する必要があります。私のデモをチェックしてください:

Fiddle:
クリック イベントあり: http://jsfiddle.net/fS4R5/1/
クリック イベントなし: http://jsfiddle.net/fS4R5/2/

HTML:

<label><input type="checkbox" id="chk"/>Label for chk</label>

JS:

function triggerChange(){
    $("#chk").trigger("change");
}

$("#chk").change(function() {
   alert("triggered!"); 
});

triggerChange();
于 2013-04-17T09:14:22.933 に答える
6

jQuery では、通常、関数パラメーターを指定せずにイベント ハンドラー メソッドを呼び出すことで、イベントをトリガーできます。

たとえば、クリック ハンドラーは次のように割り当てることができます。

$('#mything').click(function(e){dostuff});

クリックイベント自体は、次を実行するだけでトリガーできます。 $('#mything').click();

これは、jQuery の既存のすべてのイベントに対して実行できると思います。

于 2013-04-17T09:12:16.533 に答える
2

1.9.1以降の好ましい方法は「オン」だと思います。特に、動的に追加されたチェックボックスを使用する場合。

id='divCONtent' の div があり、その上に id='cballaut' のチェックボックスがあるとします。これを行うことができます

$('#divcontent').on('click', '#cballaut', function (e) {
                    alert(this.checked);
                });
于 2013-04-17T09:13:52.090 に答える
0

prop メソッドを使用します。

$('#myCheck').prop('checked', true);
$('#myCheck').prop('checked', false);
于 2015-07-03T03:14:22.497 に答える