Angularjs:请确认此指令中是否可以省略$ document.bind函数

时间:2014-03-04 15:01:33

标签: jquery angularjs

有人可以确认在下面的链接功能中是否可以省略$ 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();
            })
        }

1 个答案:

答案 0 :(得分:1)

当我取消注释你指令的这一部分时:

$document.bind("click", function () {
        menuController.closeAllOtherToggableContent();
})

它会执行“click away”事件,这意味着它会在您点击按钮时关闭所有打开的菜单。如果这是你想要的,那么是的,你需要这个。

关于DOM操作技能 - 审查并了解您提到的所有内容。 W3C学校是一个良好的开端。