gpt4 book ai didi

javascript - 如何给选择器隐式范围

转载 作者:行者123 更新时间:2023-12-02 19:51:09 25 4
gpt4 key购买 nike

我编写了一个事件处理程序,用于检测选择选项列表中的更改,然后根据所选值修改一些同级输入。

我现在想要推广此功能,以便我可以同时使用多组(驾驶选择选项列表 + 同级)。新的 onChange 处理程序可能如下所示:

$('.select-list').on('change', handleChange);

方法是这样的:

function handleChange(event){
$parent = $(event.delegateTarget).closest('.parent');
var parentId = '#' + $parent.attr('id');

$(parentId + '.foo').flyAway();
$(parentId + '.bar').destroy();
$(parentId + '.bax').render();
$(parentId + '.qux').doAGiggy();
$(parentId + '.lorem').applyPerfume();
$(parentId + '.ipsum').eatBetter();
// ... several times
}

我不想在整个处理程序中重复 parentId 部分,因为它很困惑且难以维护。有没有办法给我的选择器隐式作用域,即 $('.a-class') 知道我希望它在哪个 parent-id 内“工作”?

最佳答案

假设您使用以下代码委托(delegate)事件(正如在 .on() 上使用所建议的那样):

$('.parent-container').on('change', '.select-list', handleChange);

事件对象有 delegateTarget属性。

Description: The element where the currently-called jQuery event handler was attached.

所以你可以这样做:

function handleChange(event){

$(event.delegateTarget).find('.a-class').doStuff();
// .. now use a similar selector $(parentId + ..) several times
}

关于javascript - 如何给选择器隐式范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9293284/

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