JavaScript事件委派“this”到委派的元素?
我想JavaScript事件委派“this”到委派的元素?,javascript,jquery,Javascript,Jquery,我想将类添加到相关的委托类:['.ping','.pong','.pingpong']。这些类是动态添加的。示例mouseenteron.ping应该.addClass('bg-highlight')到.ping。我该如何正确地针对班级 尝试: $('#result').on('mouseenter', ['.ping', '.pong', '.pingpong'], function(event){ $( event.delegateTarget ).addClass('bg-highli
将类添加到相关的委托类:['.ping','.pong','.pingpong']
。这些类是动态添加的。示例mouseenter
on.ping
应该.addClass('bg-highlight')
到.ping
。我该如何正确地针对班级
尝试:
$('#result').on('mouseenter', ['.ping', '.pong', '.pingpong'], function(event){
$( event.delegateTarget ).addClass('bg-highlight');
问题:event.delegateTarget
在#结果
$('#result').on('mouseenter', ['.ping', '.pong', '.pingpong'], function(){
$( this ).addClass('bg-highlight');
问题:此
在#结果
上呈现addClass
,请尝试以下操作:-
$('#result').on('mouseenter', ['.ping', '.pong', '.pingpong'], function(){
$( this ).addClass('bg-highlight');
$('#result').on('mouseenter', '*' , function(){
var arr = ['ping', 'pong', 'pingpong'];
$.each(arr, function(i, elem) {
$('.'+elem).addClass('bg-highlight');
});
});
以下是您将如何做到这一点:
var clsArr = ['.ping', '.pong', '.pingpong'],
clsStr = clsArr.join(',');
$('#result').on('mouseenter', clsStr, function(){
$( this ).addClass('bg-highlight');
});
var clsArr=['.ping','.pong','.ping'],
clsStr=clsArr.join(',');
$('#result')。在('mouseenter',clsStr,function()上{
$(this.addClass('bg-highlight');
});代码>
.bg突出显示{
颜色:黄色;
背景色:黑色;
填充:2px;
}
发出砰的声响
庞
乒乓球
而不是['.ping'、'.pong'、'.pingpong']
它应该是'.ping、.pong、.pingpong'
那么e.target呢?你错了,这是使用jQuery时事件产生的元素,问题可能是其他的,很可能是错误地使用数组而不是字符串作为委托选择器。如我的回答所示,此
正确地指向了所需的元素。@PeterKA ok非常好,谢谢Kartikeya在您之前回答了相同的问题。没必要否决这个问题,把你的文本加粗。是的,这就是我需要的谢谢@Kartikeya——是的,你的编辑实际上也是我修改过的。有趣的让我陷入困境的是[]这将是非常昂贵的性能,因为它针对的是\result
@Peter的所有子级。它应该针对.ping
上的所有子级。示例mouseenter应该.addClass('bg-highlight')
到.ping
。。。那么,当一个类被悬停时,为什么要将该类添加到所有子类中呢?快速演示应该会揭示这一点。@FábèAnšęlmò,我认为你是告诉你想要什么的最佳人选。我的第一个答案与你发布的答案相同,但是,.ping、.pong、.pingpong
没有修复,它存储在即将发布的阵列更新中@卡提基亚?