2015-10-26 3 views
1

Я хочу создать пользовательские директивы вместо ng-mouseover и ng-mouseleave, так как ng-mouseleave не работал в chrome.Как создать пользовательские директивы для mouseover и mouseleave в angularjs

Мое требование - когда я наведите курсор мыши, появится popover и когда я пойду, он должен закрыть. Близкая функциональность не закрывается в нескольких ситуациях в хроме (частота закрытия popover несовместима).

<div class="eleCalc" ng-mouseover="calcPopOver(i)" id="term{{i.Id}}" ng-mouseleave="hidePopOvers()"> 
        {{calcNumbers(i)}} 
</div> 

функция calcPopOver открывает всплывающие и hidePopOvers() закрывает.

Пожалуйста, помогите создать новую директиву.

Благодаря

+0

Вы искали других людей с этим вопросом? Я сразу нашел это, исправил ли вы проблему? http://stackoverflow.com/questions/27687002/ng-mouseover-and-ng-mouseleave-events-not-working-on-chrome –

+0

Проблема может быть чем-то еще, потому что эти две директивы обычно работают во всех распространенных браузерах. Я бы потратил на это инициативу, вместо того, чтобы внедрять собственные. – LordTribual

+0

@BenHeymink Спасибо за ваш ответ. Я знаю об этом, но похоже, что клиент не хочет делать настройки в хроме. Поэтому я должен поднять новый подход к вышесказанному. Вы можете мне помочь? – prashanth

ответ

6

Да, вы можете использовать пользовательские директивы, как показано ниже, чтобы обеспечить функциональность вы хотите.

app.directive('domDirective', function() { 
     return { 
      restrict: 'A', 
      link: function ($scope, element, attrs) { 
       element.on('click', function() { 
        element.html('You clicked me!'); 
       }); 
       element.on('mouseenter', function() { 
        element.css('background-color', 'yellow'); 
       }); 
       element.on('mouseleave', function() { 
        element.css('background-color', 'white'); 
       }); 
      } 
     }; 
    }); 

Рабочий код пера такой же, как показано ниже.

CodePen

Более подробной информации о пользовательской директиве, как этот визит ссылки ниже.

weblogs.asp.net

+0

Спасибо за ваш ответ. Я хочу, чтобы в mouseenter мне нужно было вызвать функцию calcPopover (i). который создает всплывающее окно с data.and На mouseleave мне нужно вызвать hidepopovers(), чтобы закрыть popovers. – prashanth

+1

В этом случае используйте что-то вроде ниже. http://jsfiddle.net/alexsuch/RLQhh/ –

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