javascript - 元素及其父元素指定了 ng-click,两者都被称为

标签 javascript angularjs

假设我有一个 DIV,其中指定了当通过 ng-click 单击它时调用的函数。

在此DIV内有一个BUTTON,它还有一个在单击时调用的函数,由ng-click指定。

当我单击按钮时,DIV 的单击函数和 BUTTON 的单击函数都会被调用。 如何才能只调用 BUTTON 的函数?

我已经设置了这个fiddle为了更好地说明我的意思。下面是代码:

HTML:

<body ng-app="Test">
    <section ng-controller="TestCtrl as ctrl">
        <div class="square" ng-click="ctrl.divClick()">
            <span>My text</span>
            <button ng-click="ctrl.buttonClick()" >My button</button>
        </div>
    </section>
</body>

JavaScript:

(function() {
    var app = angular.module('Test', []);

    app.controller('TestCtrl', [function() {
        this.divClick = function() {
            alert('div clicked');            
        };

        this.buttonClick = function() {
            alert('button clicked');
        }
    }]);
})();

编辑:

根据akonsu的建议,我只需要停止事件传播。这对我有用。 这是更新的Fiddle展示它是如何工作的。

最佳答案

停止事件的传播:

<button ng-click="ctrl.buttonClick($event)">

this.buttonClick = function(e) {
  e.stopPropagation();
  alert('button clicked');
}

关于javascript - 元素及其父元素指定了 ng-click,两者都被称为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26913266/

相关文章:

javascript - 如何防止moment js根据服务器时区转换时间戳

javascript - Angular 2 : How to dynamically set data binding variables on input elements?

javascript - 创建触发第二个事件的事件

javascript - 如何在 Java 中使用 HtmlUnit 获取由 javascript 创建的 Html,然后使用 Jsoup 解析它?

javascript - 将 for 循环中的整数替换为字符串

javascript - 动态插入 GA 跟踪 ID 代码会产生错误 "No HTTP response detected"Google 标记管理器

angularjs - 组件的 Typescript Angular 1.5 定义文件

javascript - typeof 的 TypeScript 动态模块加载问题

javascript - 设置为 true 时指令范围的奇怪行为

javascript - Google 更新和 AngularJS/JavaScript 网站