event.stopPropagation不适用于模式(“ show”)

安东尼·奥(Anthony O.

我同时在<ul>(或<tr>)和其内部的按钮上单击ng

如果我单击该行,我想做点什么,如果单击我的按钮,则只显示一个引导程序模态。

问题是,对于modal('show')由按钮代码声明的代码,即使我的模式消失了,该行的代码仍会执行,即使event.stopPropagation()按钮代码中有一个也是如此。

这是代码(在这里摆弄):

<ul>
    <li ng-repeat="item in items" ng-click="clickLine(item)">
        Just a test <button ng-click="clickButton(item, $event)">{{item}}</button><button ng-click="clickAlert(item, $event)">alert {{item}}</button>
        <div class="modal fade comment_{{item}}" tabindex="-1" role="dialog">
            <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-body">
                    Test {{item}}
                </div>
            </div>
            </div>
        </div>
    </li>
</ul>
$scope.clickLine = function(item) {
    alert('line : '+item);
};
$scope.clickButton = function(item, event) {
    angular.element('.comment_'+item).modal('show');
    event.stopPropagation();
};
$scope.clickAlert = function(item, event) {
    alert('Click alert: '+item);
    event.stopPropagation();
};
$scope.items = ['One', 'two', '3'];

在这里,当我单击第一个按钮时,将显示模式,而当我在外面单击以使其消失时,clickUl代码将自动执行!而单击第二个按钮仅执行clickAlert代码...

有什么理由吗?引导程序错误?

安东尼·奥(Anthony O.

正如,上述问题的评论,该模式被关闭后启动第二个事件是一个完整的新的,因为模式是该行,所以“点击行”活动启动,如果我点击的模式外,退出它(“背景”)。

解决方案是将模式注释从第一次迭代中移出(此处完全摆弄):

<div ng-app="myApp">
    <div ng-controller="TestCtrl">
        <ul>
            <li ng-repeat="item in items" ng-click="clickLine(item)">
                Just a test <button ng-click="clickButton(item, $event)">{{item}}</button><button ng-click="clickAlert(item, $event)">alert {{item}}</button>
            </li>
        </ul>
        <div ng-repeat="item in items" class="modal fade comment_{{item}}" tabindex="-1" role="dialog">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-body">
                        Test {{item}}
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

或不重复模态(此处为小提琴):

<div ng-app="myApp">
    <div ng-controller="TestCtrl">
        <ul>
            <li ng-repeat="item in items" ng-click="clickLine(item)">
                Just a test <button ng-click="clickButton(item, $event)">{{item}}</button><button ng-click="clickAlert(item, $event)">alert {{item}}</button>
            </li>
        </ul>
    </div>
    <div class="modal fade globalModal" tabindex="-1" role="dialog" ng-controller="GlobalModalCtrl">
        <div class="modal-dialog modal-lg">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <h4 class="modal-title" ng-bind="globalModalService.title"></h4>
                </div>
                <div class="modal-body" ng-bind="globalModalService.body">
                </div>
            </div>
        </div>
    </div>
</div>
$scope.clickButton = function(item, event) {
    globalModalService.show('Test title', 'Test '+item);
    event.stopPropagation();
};

通过这种对全局模式的处理:

.controller('GlobalModalCtrl', function(globalModalService, $scope) {
    $scope.globalModalService = globalModalService;
})
.factory('globalModalService', function() {
    var globalModalService = {
        body: null,
        title: null,
        show: function(title, body) {
            globalModalService.body = body;
            globalModalService.title = title;
            angular.element('.globalModal').modal('show');
        }
    };
    return globalModalService;
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript event.stopPropagation()不适用于`accesskey`属性

来自分类Dev

jQuery .on Event不适用于变量选择器

来自分类Dev

.unbind()不适用于event.preventDefault()

来自分类Dev

event.preventDefault()不适用于在Wordpress上提交

来自分类Dev

锚链接不适用于jquery event.preventDefault;

来自分类Dev

event.preventDefault不适用于特定的呼叫

来自分类Dev

jQuery .on Event不适用于变量选择器

来自分类Dev

event.preventDefault() 不适用于表单提交

来自分类Dev

$event.target.value 不适用于点击事件

来自分类Dev

ng-show不适用于div上的类

来自分类Dev

AngularJS ng-show不适用于Viewbag

来自分类Dev

ng-show不适用于div上的类

来自分类Dev

AngularJS ng-show不适用于Viewbag

来自分类Dev

Form1.Show() 不适用于 asyn await

来自分类Dev

jQuery Show Hide 不适用于 Internet Explorer

来自分类Dev

ng-show不适用于UnderscoreJS的_.isNull,但适用于val === null

来自分类Dev

maplotlib.pyplot.show() 适用于 python 但不适用于 jupyter 控制台

来自分类Dev

为什么`event.preventDefault()`不适用于两个嵌套的div?

来自分类Dev

返回false; event.preventDefault不适用于1password自动提交

来自分类Dev

AngularJS $ location不适用于google.maps.event侦听器

来自分类Dev

event.target.checked 属性不适用于复选框

来自分类Dev

ng-show不适用于自定义指令

来自分类Dev

Angular验证消息不适用于ng-show和两个输入

来自分类Dev

ngAnimate CSS动画不适用于ng-show和ng-hide

来自分类Dev

Rivets.js rv-show不适用于rv-each

来自分类Dev

ng-show / ng-hide / ng-if如果不适用于Angular指令

来自分类Dev

hide()和show()选择选项不适用于Chrome

来自分类Dev

ng-show似乎不适用于全局变量

来自分类Dev

在ng-click上进行ng-show不适用于AngularJS

Related 相关文章

  1. 1

    JavaScript event.stopPropagation()不适用于`accesskey`属性

  2. 2

    jQuery .on Event不适用于变量选择器

  3. 3

    .unbind()不适用于event.preventDefault()

  4. 4

    event.preventDefault()不适用于在Wordpress上提交

  5. 5

    锚链接不适用于jquery event.preventDefault;

  6. 6

    event.preventDefault不适用于特定的呼叫

  7. 7

    jQuery .on Event不适用于变量选择器

  8. 8

    event.preventDefault() 不适用于表单提交

  9. 9

    $event.target.value 不适用于点击事件

  10. 10

    ng-show不适用于div上的类

  11. 11

    AngularJS ng-show不适用于Viewbag

  12. 12

    ng-show不适用于div上的类

  13. 13

    AngularJS ng-show不适用于Viewbag

  14. 14

    Form1.Show() 不适用于 asyn await

  15. 15

    jQuery Show Hide 不适用于 Internet Explorer

  16. 16

    ng-show不适用于UnderscoreJS的_.isNull,但适用于val === null

  17. 17

    maplotlib.pyplot.show() 适用于 python 但不适用于 jupyter 控制台

  18. 18

    为什么`event.preventDefault()`不适用于两个嵌套的div?

  19. 19

    返回false; event.preventDefault不适用于1password自动提交

  20. 20

    AngularJS $ location不适用于google.maps.event侦听器

  21. 21

    event.target.checked 属性不适用于复选框

  22. 22

    ng-show不适用于自定义指令

  23. 23

    Angular验证消息不适用于ng-show和两个输入

  24. 24

    ngAnimate CSS动画不适用于ng-show和ng-hide

  25. 25

    Rivets.js rv-show不适用于rv-each

  26. 26

    ng-show / ng-hide / ng-if如果不适用于Angular指令

  27. 27

    hide()和show()选择选项不适用于Chrome

  28. 28

    ng-show似乎不适用于全局变量

  29. 29

    在ng-click上进行ng-show不适用于AngularJS

热门标签

归档