ionicModal禁用单击事件

ionicModal disabling click-events

本文关键字:事件 单击 ionicModal      更新时间:2023-09-26

Ionic/codova/angular/ios应用程序:

我正在使用angular notify来显示附加了ng-click事件的覆盖消息。它们显示得很好,ng点击事件会注册,除非ionicModal打开-当它打开并显示角度通知消息时,我不能点击它。一旦我点击关闭模态(我必须点击我的通知,因为它覆盖了关闭按钮,但它仍然关闭模态),ng点击会再次注册。

我不知道如何测试这个理论,但感觉点击被ionicModal捕获或禁用了。我能做些什么吗(z-index设置为99999)来注册这些点击吗?

--UPDATE(在Chrome中测试,带检查员)

元素的加载顺序似乎并不重要。无论是模式、通知覆盖还是弹出加载,问题仍然存在。

我的通知覆盖的点击事件被切断,直到模式和/或弹出窗口被取消。

当我查看DOM检查器时,我看到一些div是在弹出或模态实例化时创建的。这个:

<div class="click-block click-block-hide"></div>

看起来它可能导致了我的问题,但它在DOM中的位置较低,当我删除元素(在Chrome检查器中)时,它并不能解决我的问题。

无论我设置了什么z索引,或者我在DOM中移动元素的位置(通过检查器),或者我删除了什么背景div元素,我仍然无法单击我的通知,直到任何和所有弹出/模式都被取消。

有什么想法吗?

你能更好地解释一下布局吗?ionicModal是否位于消息顶部?还是他们肩并肩?

如果模态位于消息上方,那么这就是z索引的问题。您需要确保正在使用的类的z索引没有覆盖99999的z索引。

我想明白了,至少知道如何破解它。$ionicModal和$ionicPopup为body元素<body class='popup-open modal-open'>添加了一个类。我没有研究如何,但它阻止了我的通知点击。

因此,我在angular通知中添加了一个间隔,以从$ionicBody中删除模态打开和弹出式打开类。

var notificationInterval;
notificationInterval = $interval(function() {
  $ionicBody.removeClass('modal-open');
  $ionicBody.removeClass('popup-open');
  //  console.log("removing those body classes while the notification is up.");
}, 1000)

对于通知解雇,我添加到$范围中$关闭功能

$interval.cancel(notificationInterval)