ng-click 不适用于 opacity:1 的对象;

ng-click doesn't work on objects with opacity:1;

我有一个 Angular 项目,我试图在其中制作一个模态对话框 window 用于登录。

但是,我的模式中的 ng-click 元素不会触发调用。所有在我的模态之外的都可以正常工作。

怎么会这样?


app.css

.modalDialog {
    position: fixed;
    font-family: Arial, Helvetica, sans-serif;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.8);
    z-index: 99999;
    opacity:0;
    -webkit-transition: opacity 400ms ease-in;
    -moz-transition: opacity 400ms ease-in;
    transition: opacity 400ms ease-in;
    pointer-events: none;
}
.modalDialog:target {
    opacity:1;
    pointer-events: auto;
}
.modalDialog > div {
    width: 50%;
    min-height: 50%;
    position: relative;
    margin: 10% auto;
    padding: 5px 20px 13px 20px;
    border-radius: 10px;
    background: #fff;
    background: -moz-linear-gradient(#fff, #F5F5F0);
    background: -webkit-linear-gradient(#fff, #F5F5F0);
    background: -o-linear-gradient(#fff, #F5F5F0);
}


navbar.html

<div class="navigationbar" ng-controller="NavbarCtrl">
    ...

    <a href="#loginModal" ng-click="hello()"></a>     <!-- Works like a charm -->

    ...

    <div id="loginModal" class="modalDialog">
        <div>
            <div class="col-sm-12">
                <form>
                    <div>
                        <button class="btn btn-inverse btn-lg btn-login" ng-click="hello()">
                            Login
                        </button>     <!-- works like shite in high heels -->
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>


navbar.controller.js

'use strict';

angular.module('lunorthApp')
    .controller('NavbarCtrl', function ($scope, $location, Auth, $window) {

        ...

        $scope.hello = function(){
            console.log('hello');
        };

        ...

    });


JsFiddle 以便你们一起玩 ^^

问题出在你的CSS实际上:

pointer-events: none;

事件不会在您的 div 中触发,因此不会在您的 button 中触发 click event

我创建了一个 JSFiddle 来比较有无 pointer-events: none; 属性。