Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript事件委派“this”到委派的元素?_Javascript_Jquery - Fatal编程技术网

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
没有修复,它存储在即将发布的阵列更新中@卡提基亚?