8

チェックされたステータスに応じて追加のフィールドを表示/非表示にするチェックボックスにクリックイベントを追加しています。ロード時にハンドラーを起動して、初​​期ページ構造をセットアップする必要があります。何らかの理由で、triggerHandler がフィールドで機能していません。「トリガー」に変更すると、ハンドラーが起動しますが、チェックボックスのステータスも変更されます。私が間違ったことをしたか、なぜtriggerHandlerが機能しないのかわかりますか?

$('body').on("click", "#hdimage", function(){
    console.log('hd');
    if(!$('#hdimage').is(':checked')){
        $('.sd-dim').hide();
    } else {
        $('.sd-dim').show();
    }
});
$('#hdimage').triggerHandler('click');
4

2 に答える 2

10

それが起こるドキュメントで説明されているよう

で作成されたイベントは.triggerHandler() 、DOM 階層をバブルアップしません。ターゲット要素によって直接処理されない場合、何もしません。

要素で発生するイベントを処理.on()できるようにするメソッドの委任された構文を使用するため、そのイベントは..bodyclick#hdimagebody

于 2013-04-29T23:22:27.927 に答える
0

あなたのイベントは「#hdimage」にバインドされておらず、「body」にバインドされています

$(document).ready(function(){
    $('#hdimage').on("click", function(){
        alert("dostuff")
    });
    $('#hdimage').triggerHandler('click');
});
于 2013-04-29T23:22:01.137 に答える