Я играю прямо сейчас с фреймворком AngularJS, и я наткнулся на проблему. Я сделал директиву, которая называется «enter». Он запускает функции на mouseenter
и mouseleave
. Я применил его как атрибут к элементам строки таблицы. Теперь запускается для каждого дочернего элемента (все столбцы и т. Д.), Но его следует запускать только при наведении указателя мыши на строку таблицы.AngularJS: предотвращение запуска события «mouseenter» для дочерних элементов
Это как моя директива выглядит следующим образом:
myapp.directive('enter', function(){
return {
restrict: 'A', // link to attribute... default is A
link: function (scope, element){
element.bind('mouseenter',function() {
console.log('MOUSE ENTER: ' + scope.movie.title);
});
element.bind('mouseleave',function() {
console.log('LEAVE');
});
}
}
});
Вот пример: http://jsfiddle.net/dJGfd/1/
Вы должны открыть консоль Javascript для просмотра сообщений журнала.
Каков наилучший способ достичь функциональности, которую я хочу в AngularJS? Я предпочитаю не использовать jQuery, если есть разумное решение AngularJS.
Это выглядит как ошибка для меня. Просто обратите внимание, вы также можете применить угловую директиву под названием «ng-mouseenter»/«ng-mouseleave». Моя идея состояла бы в том, чтобы сохранить последний зависающий элемент и посмотреть, не отличается ли он от него. –