有人可以确认在下面的链接功能中是否可以省略$ document.bind功能吗?它似乎对实际的代码行为没有任何影响,但由于我仍然在努力处理任何旨在操纵Dom的代码,如果有人能在这里解释$ document的角色,我会很感激。这里有my working fiddle有一些重构和params注释掉,因为它们似乎没用过。这是original source的链接。
另外,我怀疑是否有更好的方法来获得不涉及学习jquery的Dom操作技能。我刚刚考虑过关于Jquery的w3学校课程:-)。在Angular文档中没有太多的例子显示如何使用jquerylite api,这在理解如何在没有这些技能的情况下使用它时肯定具有挑战性。学习jquery是要走的路还是有更好的路线?
link: function ($scope, $iElement, $iAttrs, menuController) {
menuController.addSubmenu($scope);
$iElement.bind("click", function (event) {
menuController.closeAllOtherToggableContent($scope);
event.preventDefault();
event.stopPropagation();
$iElement.toggleClass("active");
});
$scope.close = function () {
$iElement.removeClass("active");
};
$document.bind("click", function () {
//
// menuController.closeAllOtherToggableContent();
})
}
答案 0 :(得分:1)
当我取消注释你指令的这一部分时:
$document.bind("click", function () {
menuController.closeAllOtherToggableContent();
})
它会执行“click away”事件,这意味着它会在您点击按钮时关闭所有打开的菜单。如果这是你想要的,那么是的,你需要这个。
关于DOM操作技能 - 审查并了解您提到的所有内容。 W3C学校是一个良好的开端。