jquery triggerHandler 不起作用,而触发器不起作用



我添加一个点击事件到一个复选框,这将显示/隐藏额外的字段取决于其检查状态。我希望处理程序在加载时触发以设置初始页面结构。由于某种原因,triggerHandler没有在字段上工作。如果我将其更改为'trigger',则处理程序将触发,但复选框状态也将改变。你能看到我做错了什么/为什么triggerHandler不会工作吗?

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

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

.triggerHandler() 创建的事件不冒泡DOM层次;如果它们没有被目标元素直接处理,它们什么也不做。

并且由于您使用.on()方法的委托语法,使body处理发生在#hdimage元素上的click事件,该事件永远不会到达body ..

你的事件不是绑定到"# himage "而是绑定到" body "

$(document).ready(function(){
    $('#hdimage').on("click", function(){
        alert("dostuff")
    });
    $('#hdimage').triggerHandler('click');
});

相关内容

  • 没有找到相关文章