javascript - 指令中的 jQuery 函数不起作用

标签 javascript jquery angularjs

我的 jQuery 函数在我的指令中不起作用。

这是我的指令:

app.directive('responsiveNav', function () {
  return {
      restrict: 'E',
      link: function (element) {
          var pull = $('#pull');
          var menu = $('.nav-bar ul ul');
          var menuHeight = menu.height();

          $(pull).on('click', function (e) {
              e.preventDefault();
              menu.slideToggle();
          });

          $(window).resize(function () {
              var w = $(window).width();
              if (w > 320 && menu.is(':hidden')) {
                  menu.removeAttr('style');
              }
          });
      }
  };
});

HTML:

<div class="header" responsive-nav>
        <div class="nav-bar">
            <ul style="padding:15 0 15 0;height:50px;">
                <li style="border-right: none;">
                    <a href="" style="padding:0;"><img src="assets/images/who-logo.png"></a>
                </li>
                <a href="#" id="pull">Menu</a>
                <ul style="float:right;list-style-type:none;padding:8.5 0 8.5 0;">
                    <li><a class="active" href="">Home</a></li>
                    <li><a href="">About us</a></li>
                    <li><a href="">Tickets</a></li>
                    <li><a href="">Event</a></li>
                    <li><a href="">Gallery</a></li>
                    <li><a href="">Video</a></li>
                    <li><a href="">Contact</a></li>
                    <li style="border-right: none;"><a><i class="fa fa-facebook" style="font-size: 1.5em;"></i></a></li>
                    <li style="border-right: none;"><a><i class="fa fa-instagram" style="font-size: 1.5em;"></i></a></li>
                    <li style="border-right: none;"><a><i class="fa fa-twitter" style="font-size: 1.5em;"></i></a></li>
                </ul>
            </ul>

        </div>
    </div>

该指令甚至不会对 #pull 上的点击使用react,而且我的控制台中没有任何错误。希望你明白这个问题。欢迎任何帮助!

最佳答案

您的指令仅限于 Element by

 restrict: 'E'

但是您已经将指令作为属性。

<div class="header" responsive-nav>

restrict: 'A' 是解决问题的一种方法。

此外,我不同意您在这里使用 jquery 的某些方式。尽量保持棱 Angular 分明。

请花点时间引用 angular directive documentation更好地利用框架的这一强大功能。

关于javascript - 指令中的 jQuery 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769287/

相关文章:

javascript - 分配给新变量后如何测试 Prop

javascript - head.js "Modernizr"等功能未检测到 ms-edge

javascript - 在 Angular.js 中使用来自 JSON 的绑定(bind) html 时,选择选项值返回 null

jquery - 我可以使用什么 UI 库来模仿 facebook ImageView 叠加

JMeter 中的 JQuery 表达式

javascript - 异步 ajax 调用无需 async=false 并在每次调用之间设置延迟

javascript - 为什么我的待办事项功能不起作用?

javascript - 阻止在 Enter 上提交,但允许在 TextArea 中输入换行符

javascript - TypeScript 中的 Typeof 参数对象

javascript - 无法将 jquery .append(data) 用作 .val(append(data))