0
我在將一個指令中的jQuery轉換爲純粹的angularjs時遇到了一些麻煩..據我瞭解,它應該工作,但後來我只做過一個指令之前。AngularJS指令:將jQuery導航滾動到指令
有人可以解釋我做錯了什麼嗎?該指令沒有任何反應。
這裏是jQuery的:
$(".page-header-fixed .navbar.scroll-hide").mouseover(function() {
$(".page-header-fixed .navbar.scroll-hide").removeClass("closed");
return setTimeout((function() {
return $(".page-header-fixed .navbar.scroll-hide").css({
overflow: "visible"
});
}), 150);
});
$(function() {
var delta, lastScrollTop;
lastScrollTop = 0;
delta = 50;
return $(window).scroll(function(event) {
var st;
st = $(this).scrollTop();
if (Math.abs(lastScrollTop - st) <= delta) {
return;
}
if (st > lastScrollTop) {
$('.page-header-fixed .navbar.scroll-hide').addClass("closed");
} else {
$('.page-header-fixed .navbar.scroll-hide').removeClass("closed");
}
return lastScrollTop = st;
});
});
這裏是我的指令:
(function() {
'use strict';
angular
.module('app.directives')
.directive('navScroll', navScroll);
function navScroll() {
return function (element) {
var windowEl = angular.element($window);
var delta = 50;
var lastScrollTip = 0;
element.bind('mouseover', function() {
element.removeClass('closed');
return $timeout((function() {
return element.css({
overflow: 'visible'
});
}), 150);
});
windowEl.on('scroll', function() {
var st = windowEl.scrollTop();
if (Math.abs(lastScrollTop - st) <= delta) {
return;
}
if (st > lastScrollTop)
element.addClass('closed');
else
element.removeClass('closed');
return lastScrollTop = st;
});
};
}
})();
嗯,我已經有了導航滾動屬性,我想你額外的代碼,但似乎沒有區別。 – Lansana
啊哇我不敢相信我忘記注入依賴lol。這似乎解決了它,以及底部的返回語句錯誤。加上錯字。謝謝!順便說一句,沒有必要限制'A',如果沒有指定它已經默認爲'A',這是什麼在這種情況下使用。但是也沒有傷害:D – Lansana