【发布时间】: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