mouseenter 事件被触发两次(因为selected-client
克隆,也有一个类client
。如果在 mouseenter 事件中添加 console.log,你会注意到:
entering <div class="client">hello</div>
entering <div class="client selected-client" style="background-color: red; position: absolute; top: 0.5em; background-position: initial initial; background-repeat: initial initial;">hello</div>
如果触发它的元素是您的selected-client
.
即在您的第一个事件处理程序中:
if($this.hasClass('selected-client')){return;}
或者,更完整地,对于该代码块:
$(document).on({
mouseenter: function(){
var $this = $(this);
if($this.hasClass('selected-client')){
return;
}
var clientClone = $this.clone().css({background:'red', position:'absolute', top: '0.5em'}).addClass('selected-client');
clientClone.insertBefore(this);
}
}, 'div.client');