gpt4 book ai didi

javascript - 指定事件未触发事件处理程序

转载 作者:行者123 更新时间:2023-12-02 14:26:47 26 4
gpt4 key购买 nike

我正在实现一个具有复杂数据字段依赖性的用户输入表单。例如,收集用户地址的表单:国家/地区、州和街道地址。

当国家字段发生变化时,我想触发国家字段的清理过程。当状态改变时,我想要干净的街道地址字段。它们像依赖树结构一样链接起来。

这是我在 JSFiddle 中的设置。它包含 5 个输入框。它们的依赖树是通过 HTML5 数据属性实现的。

我想将函数 cleanSubtree 绑定(bind)到每个输入框的 change 事件。因此,每当检测到更改时,此函数都会清除所有相关字段。如下:

 $('input').on('change',function cleanSubtreeHandlerWrapper(e){
var inputElem = $(this);
return function(){
e.stopPropagation();
cleanSubtree(inputElem);
};
});

但是,当我更改任何输入框的文本时,有界函数似乎没有执行。但如果我直接调用它们,该函数将正常工作,例如cleanSubtree($('#i3'));

请问cleanSubtree函数未触发的原因是什么?

(PS:我使用的是 jQuery 2.1.4 和 Chrome 51.0.2704.103 m)编辑:解决方法是更改​​包装函数。之前的版本没有调用包装函数。

    $('input').on('change',
function cleanSubtreeHandlerWrapper(e){ //** seems not triggered
e.stopPropagation();
cleanSubtree($(this));
});

最佳答案

更改:

     $('input').on('change',function processNodeHandlerWrapper(e){
var inputElem = $(this);
return function(){
e.stopPropagation();
cleanSubtree(inputElem);
};
});

至:

<script>
$('input').on('change',function processNodeHandlerWrapper(e){
var inputElem = $(this);
e.stopPropagation();
cleanSubtree(inputElem);
})
</script>

关于javascript - 指定事件未触发事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38174515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com