Javascript / AngularJS:如何使click事件触发父项?

时间:2015-02-25 02:32:21

标签: javascript angularjs facebook

<div id="fb-button-container" style="width:20%; margin:auto;"  data-ng-show="!isLoggedIn" data-ng-click="checkFacebookLoginState()">
    <div class="fb-login-button"  data-max-rows="1" data-size="medium" data-show-faces="false" data-auto-logout-link="false">Login with Facebook</div><!--data-ng-disabled="!facebookReady"-->
</div>

我有这个代码。我正在使用Facebook登录插件。

我遇到的问题是,如果我在 fb-login-button 上直接输入数据-ng-点击,则不会触发点击事件(可能是因为默认情况下覆盖Facebook的点击事件)。

所以我把它放在父母身上。但是这样我必须从按钮点击外部来触发它。

我想知道:有没有办法让孩子(fb-login-button)的点击事件&#34; backpropagation&#34; 转移到父母(fb-button-container)?

提前致谢

2 个答案:

答案 0 :(得分:1)

一种相当愚蠢的方法是使用父内部的另一个元素,它将充当主触发器。在checkFacebookLoginState()内部,监听click事件,并在需要时再执行一次单击隐藏的fb登录按钮。

&#13;
&#13;
<div id="fb-button-container" style="width:20%; margin:auto;"  data-ng-show="!isLoggedIn">
    <div class="fb-login-check" data-ng-click="checkFacebookLoginState()"></div>
    <div class="fb-login-button hidden"  data-max-rows="1" data-size="medium" data-show-faces="false" data-auto-logout-link="false">Login with Facebook</div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

你可以通过给它一个更高的z-index来设置一个div的Facebook按钮的大小和形状,这样他们就会点击你的div而不是Facebook按钮。

这不是您问题的真正答案,而是您问题的解决方案。