Javascript jquery angularjs如何知道鼠标按下事件是否由浏览器的滚动条触发
我有一个小面板,如果按下鼠标下键,我就会关闭这个面板,基本上它会清除要显示的数据,只要在angularjs ng show的帮助下,如果没有数据,我就会隐藏它……应用程序在angularjs和jquery中 请在下面查找代码Javascript jquery angularjs如何知道鼠标按下事件是否由浏览器的滚动条触发,javascript,jquery,angularjs,html,Javascript,Jquery,Angularjs,Html,我有一个小面板,如果按下鼠标下键,我就会关闭这个面板,基本上它会清除要显示的数据,只要在angularjs ng show的帮助下,如果没有数据,我就会隐藏它……应用程序在angularjs和jquery中 请在下面查找代码 var closeSearchResultsIfClickedOutside = function (e) { if ($(e.target).parents('.searchResults').length === 0) { var scope
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();
}
};