相关疑难解决方法(0)

取消后如何继续事件传播?

当用户点击某个链接时,我想用确认对话框显示它们.如果他们点击"是",我想继续原始导航.一个问题:我的确认对话框是通过返回一个jQuery.Deferred对象实现的,该对象仅在用户单击Yes按钮时解析.所以基本上确认对话框是异步的.

所以基本上我想要这样的东西:

$('a.my-link').click(function(e) {
  e.preventDefault(); e.stopPropogation();
  MyApp.confirm("Are you sure you want to navigate away?")
    .done(function() {
      //continue propogation of e
    })
})
Run Code Online (Sandbox Code Playgroud)

当然,我可以设置一个标志并重新触发点击,但这很麻烦.这样做的任何自然方式?

javascript dom event-propagation

62
推荐指数
3
解决办法
6万
查看次数

Javascript:取消或让活动继续进行?

我的场景涉及 Kendo UI,但我认为它可能通常适用于 JavaScript,因此使用 JavaScript 标签。

我有一个 Kendo 调度程序,其编辑事件选项设置为 functionA。

在 functionA 中,我创建了一个 Kendo 窗口(基本上是一个模态窗口)来询问用户一个问题;在一种情况下,编辑事件应该继续并冒泡,就好像模式从未存在过一样,在另一种情况下,它应该防止默认并返回。

问题在于模式是非阻塞的,因此确认模式出现,但事件逻辑继续并冒泡到编辑器的内置编辑事件。

如何捕获并暂停当前事件,并且仅在从 Kendo 窗口中获得所需结果时才继续?

我知道由于 JavaScript 的单线程特性,我不能也不应该阻止 Kendo 窗口,但是有没有办法暂停此事件,并且只有在我这么说时才恢复它。

基本上,我想做一些类似 a 的事情,event.Hold()如果满足条件,event.Resume()则执行 ,否则执行event.preventDefault()

javascript events dom-events kendo-ui

3
推荐指数
1
解决办法
5583
查看次数