触发器时,jquery triggerHandler不起作用

Rum*_*ser 8 jquery event-handling jquery-trigger jquery-triggerhandler

我将一个单击事件添加到一个复选框,该复选框将根据其检查状态显示/隐藏其他字段.我希望处理程序在加载时触发以设置初始页面结构.由于某种原因,triggerHandler不在该领域工作.如果我将其更改为"触发",则处理程序将触发,但复选框状态也将更改.你能看出我做错了什么/为什么triggerHandler不起作用?

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

Gab*_*oli 10

这种情况发生(如文档中所述)因为

创建的事件.triggerHandler() 不会冒泡DOM层次结构 ; 如果它们不是直接由目标元素处理的,它们什么都不做.

因为你使用的委派语法.on(),它可以让方法body处理click了上发生的事件#hdimage元素,该事件永远不会到达body..