相关疑难解决方法(0)

在嵌套的ng-click调用之间取消事件传播的最佳方法是什么?

这是一个例子.假设我希望像许多网站一样覆盖图像.因此,当您单击缩略图时,整个窗口上会出现黑色叠加层,并且图像的较大版本将居中.点击黑色叠加层即可解散它; 单击图像将调用显示下一个图像的功能.

html:

<div ng-controller="OverlayCtrl" class="overlay" ng-click="hideOverlay()">
    <img src="http://some_src" ng-click="nextImage()"/>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript:

function OverlayCtrl($scope) {
    $scope.hideOverlay = function() {
        // Some code to hdie the overlay
    }
    $scope.nextImage = function() {
        // Some code to find and display the next image
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,这种设置,如果你点击图片,都nextImage()hideOverlay()被调用.但我想要的只是nextImage()被召唤.

我知道你可以在这个nextImage()函数中捕获和取消事件,如下所示:

if (window.event) {
    window.event.stopPropagation();
}
Run Code Online (Sandbox Code Playgroud)

...但我想知道是否有更好的AngularJS方法,不需要我使用此片段为叠加层内的元素添加所有函数的前缀.

angularjs

180
推荐指数
5
解决办法
15万
查看次数

两个带有angularjs的嵌套点击事件

我有这样的HTML结构:

<div ng-click="test()">
    <div id="myId" ng-click="test2()"></div>
    <div></div>
    ...
</div>
Run Code Online (Sandbox Code Playgroud)

目前,当我点击div带有id时,myId两个函数都会被触发,但我希望只是test2触发函数.我怎样才能做到这一点?

javascript function angularjs

59
推荐指数
2
解决办法
2万
查看次数

Twitter引导程序在下拉列表中停止传播

我在插件jOrgChart的div中有一个twitter bootstrap下拉列表.

我遇到的问题是,当我单击按钮打开下拉菜单时,它还会触发父div中的单击事件,该事件会执行其他元素的折叠.

这是我的HTML:

<div id="chart">
<div class="node">
    <div class="btn-group">
        <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
        Actions
        <span class="caret"></span>
        </a>
        <ul class="dropdown-menu" style="text-align:left;">
            <li><a href="#">Edit</a></li>
            <li><a href="#">Delete</a></li>
        </ul>
    </div>
</div>

<div class="node">
...
</div>
Run Code Online (Sandbox Code Playgroud)

我想阻止点击a.dropdown-toggle从冒泡到div.node,我尝试了这个:

$("div#chart div.btn-group > a.dropdown-toggle").click(function (e) {
            e.stopPropagation();
        });
Run Code Online (Sandbox Code Playgroud)

但现在下拉列表不起作用.

编辑

这是具体案例:http://jsfiddle.net/UTYma/2/ (感谢Joe Tuskan开始小提琴)

javascript jquery twitter-bootstrap jquery-events

26
推荐指数
1
解决办法
3万
查看次数

Angular如何才能触发子元素事件

<div ng-click="process1()" id="1">
    <div ng-click="process2()" id="2">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

当我点击id为2的div时,它将触发process1和process2,我怎样才能触发process2?

angularjs

2
推荐指数
1
解决办法
1060
查看次数