【问题标题】:jQuery mobile event.preventDefault()jQuery 移动 event.preventDefault()
【发布时间】:2012-06-22 00:29:39
【问题描述】:

我已经四处搜索并尝试了一些解决方案,但我无法获取 event.preventDefault() 处理一个简单的页面转换绑定:

$("#trainingmodus").bind('pagebeforeshow', function(event, data) {
  event.preventDefault();
  console.log("trainingmodus going off screen ");
  app.canvasGeneralHide(function(){
     //data.deferred.resolve( data.absUrl, data.options);
  });
});

我想要完成的是在其他一些转换完成后延迟页面转换。但是,event.preventDefault() 似乎不起作用。

documentation 中没有明确说明每个函数是否以及如何使用回调,但我假设它会,就像 pagebeforeload 监听器一样?

我查看了其他几个问题,例如这个:e.preventdefault(); not working

我也试过

event.stopImmediatePropagation();

event.stopPropagation();

两者都有,唉,没有效果。

【问题讨论】:

  • 你看到你的第一个日志语句了吗?尝试在 prevent default 之前添加一个并去掉 app.general 调用等任何其他内容,确保它实际上是导致问题的 event prevent default 语句。我还没有看到在匿名函数中为 jQuery.bind 传递的第二个参数“数据”。这是 jQuery 移动的东西还是常见的做法?
  • 我想这是一个 jQuery Mobile 的东西。我尝试删除第二个参数,并注释掉除 event.preventDefault() 之外的所有内容。它只是继续过渡到下一页,所以这肯定会导致问题。我在 OSX 10.7 上使用 Google Chrome dev build bytheaway,如果有的话。
  • 你想要完成什么。
  • 好吧,我已经说过 :) 引用我自己的话:“我想要完成的是在其他一些转换完成后延迟页面转换。” - 然后继续页面转换,offcourse。换句话说:延迟它,只要我说它必须继续,就继续。

标签: jquery jquery-mobile transition jquery-deferred preventdefault


【解决方案1】:

我认为阻止默认值将在转换事件中,而不是在转换之前 我认为之前的转换没有默认事件, 就像单击 a 标签的默认设置是转到 href 属性中的地址。 Preventdefault 会阻止这种情况发生。 beforepagetransition 的默认行为是什么?我认为它没有必须明确定义的默认行为。

我认为你想阻止实际转换的默认值,直到你等待的任何事情都完成

【讨论】:

  • 这是一个非常合乎逻辑的答案,我正往这个方向搜索,谢谢!
猜你喜欢
  • 2013-05-29
  • 1970-01-01
  • 2013-10-10
  • 2011-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
  • 2013-09-29
相关资源
最近更新 更多