gpt4 book ai didi

javascript - 有没有办法将 jQuery 的委托(delegate)事件处理程序签名与多个委托(delegate)目标一起使用?

转载 作者:行者123 更新时间:2023-11-29 19:39:15 24 4
gpt4 key购买 nike

我非常喜欢使用 jQuery 的委托(delegate)事件处理签名:

$('.container').on('click', '.button', function () {
// do something
});

我也非常喜欢使用多事件处理程序签名:

$('.container').on({
click: function () {
// do something
},
mouseover: function () {
// do something else
}
});

我想知道是否有办法将两者结合在一起。我希望能够处理同一根元素的多个不同后代上的点击事件。

我的第一个猜测是我可以将第二个参数传递给处理函数,但是对参数变量的检查表明除了事件对象之外没有其他数据传入。

是否有一种设计模式可以适应这种情况,还是我必须硬着头皮继续这样做?

$('.container')
.on('click', '.button-a', function () {
// do something
})
.on('click', '.button-b', function () {
// do another thing
})
.on('click', '.button-c', function () {
// do yet another thing
});

最佳答案

在这种情况下,您可以使用 , 分隔。

像这样:

$('.container')
.on('click', '.button-a, .button-b, .button-c', function () {
// do something
});

但这是因为您使用的是同一个事件。

如果想合并多个事件签名,可以这样:

$('.container .button-a, .container .button-b, .container .button-c').on({
click: function () {
// do something
},
mouseover: function () {
// do something else
}
});

关于javascript - 有没有办法将 jQuery 的委托(delegate)事件处理程序签名与多个委托(delegate)目标一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24049255/

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