更改<a>元素父元素的背景颜色时停止在<td>上闪烁鼠标悬停?jQuery/JS.
Stop flickering of mouseover on <a> element when changing background color of its parent <td>? jQuery/JS
我正在创建一个表格,用户可以在其中通过单击、按住鼠标,然后将鼠标拖到其他元素上以分组选择它们来选择表格上的元素。通过将所选元素的背景颜色更改为 #444
来向用户显示所选内容。
一切正常,但是在某些<td>
元素中,有一个子<a>
元素,当将鼠标悬停在上面时,将背景颜色更改回其原始背景色(白色),然后在鼠标离开<a>
后#444
回到其父<td>
后,将背景颜色更改回选择颜色。当快速执行此操作时,它会发出"闪烁"效果的外观,这对于我对应用程序的需求是不可取的。
我想通过让我的 jQuery 脚本在将鼠标悬停在 <a>
元素上时忽略它来防止闪烁。这样做的最佳方法是什么?
我尝试使用.not('#parent-body td a)
和toggleClass('highlight')
但没有成功,最终得到了相同的结果。
这是我创建的小提琴来演示:
http://jsfiddle.net/5wapLxnb/4/
mouseover
事件可以多次发生,因此mouseenter
是更好的选择:
http://jsfiddle.net/TrueBlueAussie/5wapLxnb/6/
var isMouseDown = false;
$("#parent-body td").on("mousedown", function() {
isMouseDown = true;
$(this).toggleClass("highlight");
return false;
}).mouseenter(function() {
if (isMouseDown) {
$(this).toggleClass("highlight");
}
});
$(document).on("mouseup", function() {
isMouseDown = false;
});
相关文章:
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 将鼠标悬停在同级元素上的 jquery 上轻拂
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 如果鼠标在元素上快速移动和关闭,则防止.hoop事件被垃圾邮件发送
- 为什么不是't html<对象>元素响应鼠标事件
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 如果鼠标离开父对象,则隐藏元素
- 当鼠标悬停在iframe上时,如何在iframe之外的元素上触发类
- 如何在鼠标悬停时显示带有拉斐尔元素(圆、线)的上下文菜单
- 当鼠标也在触摸另一个元素时,d3.js鼠标悬停事件未被触发
- 从鼠标点(及更多)查询位置元素
- 如何添加效果,以便将鼠标悬停在 SVG 元素上使其变大
- 可缩放容器鼠标上的可拖动元素在创建时从辅助对象上浮动
- 绘制DOM元素:鼠标事件会被背景元素混淆
- Fetch元素鼠标当前指向的Chrome开发工具已启用
- 如何使元素鼠标不可点击,但可以通过javascript单击
- 获取元素鼠标在iframe中的HTML