MouseEnter 事件失火,即使在 AngularJS 中也有延迟
MouseEnter event misfiring even with a delay in AngularJS
我们已经实现了一系列由 MouseEnter 事件触发的悬停卡。尽管为这些添加了超时,但即使只是触摸一毫秒,悬停卡仍然会显示。更具体地说,如果我滚动过去并且鼠标光标点击它,弹出窗口仍然会在半秒后出现。我希望能够滚动浏览项目而不会意外发生弹出窗口。
这是代码:
function onShowHoverCardHover(event) {
$timeout.cancel(timeoutShow);
$timeout.cancel(timeoutHide);
timeoutShow = $timeout(function() {
createHoverCard().then(function() {
$timeout(function() {
// alert('show timeout');
var _$hc = getHoverCard();
repositionHoverCard();
updateAlignments();
if (!isVisible) {
_$hc.addClass('show');
isVisible = true;
}
}.bind(this), 500);
}.bind(this));
}.bind(this), showTimeout);
}
我相信
一旦触发超时回调,您需要检查鼠标是否仍然悬停在卡上。
使用它来检查元素是否正在使用jQuery悬停:使用jQuery检测是否悬停在元素上
$timeout(function() {
// alert('show timeout');
var _$hc = getHoverCard();
repositionHoverCard();
updateAlignments();
// check that the card is not visible AND is being hovered
if (!isVisible && _$hc.is(':hover')) {
_$hc.addClass('show');
isVisible = true;
}
}.bind(this), 500);
相关文章:
- 延迟 AngularJS 路由更改,直到加载模型以防止闪烁
- Asp.net MVC Angularjs 奇怪的延迟
- 如何使用angularjs延迟加载谷歌jsapi图表
- Angularjs模型更新延迟
- AngularJS正在等待CSS延迟加载
- 如何使用AngularJS在延迟后启用按钮
- AngularJS搜索延迟,直到用户输入字段
- angularjs ng-include中html文件的延迟包含
- Javascript 或 angularjs 在刷新之间延迟浏览器关闭或选项卡关闭
- 如何处理 AngularJS 中 $http.post 的延迟
- AngularJS延迟承诺不推迟
- AngularJS 1.2.0:延迟加载控制器和模板
- AngularJS 延迟加载在 1.3.x 迁移后中断,获取参数“XXCntr”不是一个函数,未定义
- AngularJS - 延迟加载视图
- AngularJS:Q延迟并请求FileSystem
- Angularjs延迟加载时请求转换的多个指令
- AngularJS延迟渲染(不是延迟加载视图)
- AngularJS:延迟加载控制器和内容
- AngularJS延迟错误:参数'fn'不是一个函数,而是一个对象
- 当在另一个选项卡中时,Angularjs延迟加载chartjs