2015-05-12 2 views
0

У меня есть функция, которая запускается при наведении указателя мыши и мыши на div. Когда вы наведите курсор мыши, мне нужно, чтобы функция дождалась секунды перед запуском. Есть ли способ установить тайм-аут в инструкции if else, чтобы сделать эту работу?Установка тайм-аута с инструкцией if else в javascript

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; 
    } 
}; 
+3

Вы делаете это прямо сейчас. В чем проблема? –

+2

Похоже, вы используете угловой. try [$ timeout] (https://docs.angularjs.org/api/ng/service/$timeout) –

+0

Забыл загрузить $ timeout как зависимость .... Мой плохой !!! –

ответ

2

Как было предложено, попробовать $timeout обертку угловой

раствора с $timeout используется:

$scope.menu = function() { 
    if ($scope.dropdown_menu) { 
     $timeout(function() { 
      $scope.dropdown_menu = false; 
     }, 1000); 
    } else { 
     $scope.dropdown_menu = true; 
    } 
}; 

https://jsfiddle.net/Lx41yy47/

Смежные вопросы