使用element.bind获取clicked嵌套元素的值

时间:2015-10-30 01:15:05

标签: angularjs angularjs-directive

我在我的指令中使用以下代码,似乎点击无法跟踪我的$ location. $$路径非常好。我使用的这个插件也使用<li></li>作为可点击的项目,其路径可能导致问题。所以我的问题是,如果有一种方法我可以滑出元素,只关注<a href="#myValue>那个<li>的孩子?

.directive('treeClick', function ($location) {
    return {
      restrict: 'A',
      link: function (scope, element, attrs) {
          element.bind("mousedown", function () {
            console.log($location.$$path);
          })
        }
    }
  })

<li class="list-group-item node-tree node-selected" data-nodeid="2" style="color:#000;background-color:#eaeaea;"><span class="indent"></span><span class="indent"></span><span class="icon glyphicon"></span><span class="icon node-icon"></span><a href="#myValue" style="color:inherit;">Example1</a></li>

2 个答案:

答案 0 :(得分:1)

我在想你正在尝试做什么,你正在使用错误的事件。如果你尝试mouseup而不是mousedown怎么办?如果对网址的更新是异步的,你可能还需要$timeout你的处理,但我认为不是这样的?

更多事情...... Angular会在名为$locationChangeSuccess

的位置更改时公开事件

并且.. $$path是一个内部属性,为什么不使用记录的$location.path()

https://docs.angularjs.org/api/ng/service/ $位置

答案 1 :(得分:0)

<div class="images-block"> <div class="image-sq"> <p>⇕ Expand</p> </div><div class="image-sq"> <p>⇕ Expand</p> </div><div class="image-sq"> <p>⇕ Expand</p> </div><div class="image-sq"> <p>⇕ Expand</p> </div><div class="image-sq"> <p>⇕ Expand</p> </div><div class="image-sq"> <p>⇕ Expand </p> </div> </div> 给了我什么元素:“A”表示列表项的锚“LI”。然后我使用event.target.nodeName提取“A”的值,这样我就不会在console.log()中获取主机名