在 javascript 中使用 if else 语句设置超时
Setting a time out with an if else statement in javascript
我有一个 运行 的功能,当您将鼠标悬停在 div 上时。当你 mouseout 时,我需要函数在 运行ning 之前等待一秒钟。有没有办法在 if else 语句上设置超时以使其工作?
HTML:
<div ng-mouseover="menu()" ng-mouseout="menu()"><img src="images/headermenubutton.png" style="height: 73px; width: auto; position: absolute; left: 230px; z-index: 2000;"></div>
<div class="menu" ng-mouseover="menu()" ng-mouseout="menu()" ng-show="dropdown_menu" ng-cloak>
<a href="about_us.html"><h2 class="lighter" style="padding-top: 10px;">ABOUT US</h2></a>
<a href="contact_us.html"><h2 class="lighter">CONTACT US</h2></a>
<a href="/blog"><h2 class="lighter">BLOG</h2></a>
<a href="contact_us.html#faq"><h2 class="lighter">FAQ'S</h2></a>
</div>
JS:
$scope.menu = function() {
if($scope.dropdown_menu) {
setTimeout(function(){ $scope.dropdown_menu = false; }, 1000);
} else {
$scope.dropdown_menu = true;
}
};
按照建议,尝试 $timeout angular
的包装器
使用 $timeout
的解决方案:
$scope.menu = function () {
if ($scope.dropdown_menu) {
$timeout(function () {
$scope.dropdown_menu = false;
}, 1000);
} else {
$scope.dropdown_menu = true;
}
};
我有一个 运行 的功能,当您将鼠标悬停在 div 上时。当你 mouseout 时,我需要函数在 运行ning 之前等待一秒钟。有没有办法在 if else 语句上设置超时以使其工作?
HTML:
<div ng-mouseover="menu()" ng-mouseout="menu()"><img src="images/headermenubutton.png" style="height: 73px; width: auto; position: absolute; left: 230px; z-index: 2000;"></div>
<div class="menu" ng-mouseover="menu()" ng-mouseout="menu()" ng-show="dropdown_menu" ng-cloak>
<a href="about_us.html"><h2 class="lighter" style="padding-top: 10px;">ABOUT US</h2></a>
<a href="contact_us.html"><h2 class="lighter">CONTACT US</h2></a>
<a href="/blog"><h2 class="lighter">BLOG</h2></a>
<a href="contact_us.html#faq"><h2 class="lighter">FAQ'S</h2></a>
</div>
JS:
$scope.menu = function() {
if($scope.dropdown_menu) {
setTimeout(function(){ $scope.dropdown_menu = false; }, 1000);
} else {
$scope.dropdown_menu = true;
}
};
按照建议,尝试 $timeout angular
的包装器使用 $timeout
的解决方案:
$scope.menu = function () {
if ($scope.dropdown_menu) {
$timeout(function () {
$scope.dropdown_menu = false;
}, 1000);
} else {
$scope.dropdown_menu = true;
}
};