【发布时间】:2012-08-08 21:49:39
【问题描述】:
根据某人的建议,我在我的移动 web 应用程序中添加了这一行 $('body').on('touchstart', function(event){ event.preventDefault() }) 以禁用 iOS 中的本机应用程序弹跳。它非常适合禁用反弹,但在 DOM 的其他地方给了我一些奇怪的行为。
点击事件不起作用,等等。我希望能更好地理解它的作用以及如何解决它在 DOM 中其他地方的影响。
谢谢!
编辑:
我有这两行:
$('body').on('touchstart', function(e){ e.preventDefault() };
$('#home').on('click', function(){ alert('home') };
如果我注释掉 preventDefault 行,则 #home 行有效。如果我将其留在#home 行中,则不会响应。 #home 只是嵌套在body 中的一个div。
知道是什么导致了这种行为吗?它是更大代码库的一部分,因此很难向您提供所有细节,但我什至不知道从哪里开始。
再次感谢!
【问题讨论】:
-
这不是原生 JavaScript,它是 jQuery preventDefault method。
-
@ShadowWizard 其实是:developer.mozilla.org/en-US/docs/DOM/event.preventDefault
-
@Niko:在 jQuery 对象上调用时它不是本机方法:github.com/jquery/jquery/blob/master/src/event.js#L666
-
@Niko jQuery 是跨浏览器,它根据可用的内容决定要调用的本机代码。如果使用 Firefox 是正确的,但如果使用其他浏览器,则错误。
标签: javascript jquery html preventdefault