JavaScript事件委托`this`到委托元素?

时间:2014-11-11 05:08:50

标签: javascript jquery

我想addClass到相关的委托级别:['.ping', '.pong', '.pingpong']。这些类是动态添加的。 mouseenter上的示例.ping应该.addClass('bg-highlight').ping。我如何正确定位课程?

尝试:

$('#result').on('mouseenter', ['.ping', '.pong', '.pingpong'], function(event){
  $( event.delegateTarget ).addClass('bg-highlight');

问题:event.delegateTargetaddClass

上呈现#result
$('#result').on('mouseenter', ['.ping', '.pong', '.pingpong'], function(){
  $( this ).addClass('bg-highlight');

问题:thisaddClass

上呈现#result

2 个答案:

答案 0 :(得分:0)

试试这个: -

$('#result').on('mouseenter', '*' , function(){
   var arr = ['ping', 'pong', 'pingpong'];
   $.each(arr, function(i, elem) { 
     $('.'+elem).addClass('bg-highlight'); 
   });
});

答案 1 :(得分:0)

您将如何做到这一点:

var clsArr = ['.ping', '.pong', '.pingpong'],
    clsStr = clsArr.join(',');
$('#result').on('mouseenter', clsStr, function(){
    $( this ).addClass('bg-highlight');
});

    var clsArr = ['.ping', '.pong', '.pingpong'],
        clsStr = clsArr.join(',');
    $('#result').on('mouseenter', clsStr, function(){
        $( this ).addClass('bg-highlight');
    });
.bg-highlight {
  color:yellow;
  background-color:black;
  padding: 2px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="result">
<div class="ping">PING</div>
<div class="pong">PONG</div>
<div class="pingpong">PINGPONG</div>
  </div>