jqueryangularjs如何知道鼠标按下事件是否是由浏览器的滚动条触发的
jquery angularjs how to know if mouse down event is trigger by scrollbar of browser
我有一个小面板,如果在该面板之外的任何地方按下鼠标向下键,我都会关闭它,基本上它会清除要显示的数据,并且在angularjs ng show的帮助下,如果没有数据,我会隐藏它。。。应用程序在angularjs和jquery 中
请在下面找到代码
var closeSearchResultsIfClickedOutside = function (e) {
if ($(e.target).parents('.searchResults').length === 0) {
var scope = angular.element($("#searchContainer")).scope();
scope.$apply(function () {
/*Cancels any existing search*/
if ($scope.defer != undefined) {
$scope.defer.resolve();
}
$scope.showSearchResults = false;
reinitialize();
});
$("html").off("mousedown", closeSearchResultsIfClickedOutside);
reinitializePanelsWidth();
}
};
但如果鼠标在浏览器窗口的滚动条或任何滚动条上,我不想关闭这个面板。。请告诉我如何进行
要解决上述问题,我没有捕获两个事件,请向下鼠标单击,如果两个事件上的目标元素匹配,则只有我关闭面板。
/*
If mouse down and click on the same control, then only close the panel,
Click event closing is added to avoid closing panel on scrollbar click.
*/
var closeSearchResultsIfClickedOutside = function (e) {
if (e.type === 'mousedown') { /* only if mouse down is outside of search panel then only close the panel. */
if($(e.target).parents('.searchResults').length === 0)
{
isMouseDownOnSearchPanel = true;
}
else {
isMouseDownOnSearchPanel = false;
}
}
else if (e.type === 'click' && isMouseDownOnSearchPanel) { /*click event is implemented to avoid closing when mouse down is on scrollbar. you dont get click get event for scrollbar*/
var scope = angular.element($("#searchContainer")).scope();
$("html").off("mousedown", closeSearchResultsIfClickedOutside);
$("html").off("click", closeSearchResultsIfClickedOutside);
isMouseDownOnSearchPanel = false;
reinitializePanelsWidth();
}
};
相关文章:
- 禁用(而不是隐藏)浏览器滚动条
- 使用浏览器滚动条而不是iframe滚动条
- jqueryangularjs如何知道鼠标按下事件是否是由浏览器的滚动条触发的
- fullPage.js滚动条:true使浏览器随deelay一起移动
- 是否有任何跨浏览器方法可以获取带有滚动条的 DIV 宽度(如果存在)
- Bootsrap Modal 不会使用默认浏览器页面滚动条滚动
- 使用 jquery 停用浏览器滚动条
- 检测浏览器滚动条上的鼠标按下/单击事件
- 如何在不删除选择框滚动条的情况下删除浏览器滚动条
- 浏览器滚动条动画性能
- 如何找到浏览器滚动条的总可滚动高度
- 在窗口后启用浏览器滚动条.打开滚动条=no
- 如何隐藏android浏览器's滚动条而不禁用滚动功能
- 隐藏默认浏览器滚动条没有溢出:隐藏时使用完美滚动条
- 如何使浏览器滚动条静态
- 在发生浏览器滚动条时,需要触发事件
- 浏览器滚动条没有'使用slimwoll时有时不起作用
- 显示覆盖 DIV 时不需要的浏览器滚动条更改
- 启用浏览器滚动条工作
- 如何防止Lightbox_me脚本删除浏览器滚动条