我有一个环境,可以有n个嵌套的div标签,我只能在子div中跟踪鼠标的移动时刻。
我有下面的代码。结果显示在列表中。
问题:如果我附加更多的孩子' div‘,鼠标移动跟踪所有的父母div。
我想要的:只为鼠标悬停区域获取鼠标轨迹。
此外,我尝试使用is:悬浮过滤,但是所有的元素都是悬停的。JSFIddle
var count = 0;
$('div').on({
mousemove: function(event) {
$('.mousemovement').append('<li>MouseMove' + $(this).attr('class') + '</li>');
if (count > 10) {
$('.mousemovement').html('');
count = 0;
}
count++;
}
});.outer {
background-color: #aeaeae;
height: 200px;
width: 200px;
float: left;
}
.inner {
margin: 5px 0px;
background-color: #ccc;
height: 100px;
width: 100px;
float: left;
}
.inner2 {
margin: 5px 0px;
background-color: green;
height: 60px;
width: 60px;
float: left;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="outer">
<div class="inner">
<div class="inner2">
</div>
</div>
</div>
<ul class="mousemovement">
</ul>
发布于 2016-02-22 11:11:01
您应该使用event.stopPropagation(),检查下面的片段。
防止事件在DOM树上冒泡,防止任何父处理程序被通知该事件。
希望这能有所帮助。
var count = 0;
$('div').on({
mousemove: function(event) {
event.stopPropagation();
$('.mousemovement').append('<li>MouseMove' + $(this).attr('class') + '</li>');
if (count > 10) {
$('.mousemovement').html('');
count = 0;
}
count++;
}
});.outer {
background-color: #aeaeae;
height: 200px;
width: 200px;
float: left;
}
.inner {
margin: 5px 0px;
background-color: #ccc;
height: 100px;
width: 100px;
float: left;
}
.inner2 {
margin: 5px 0px;
background-color: green;
height: 60px;
width: 60px;
float: left;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="outer">
<div class="inner">
<div class="inner2">
</div>
</div>
</div>
<ul class="mousemovement">
</ul>
https://stackoverflow.com/questions/35551847
复制相似问题