首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >jQuery移动事件处理

jQuery移动事件处理
EN

Stack Overflow用户
提问于 2013-03-01 20:43:58
回答 2查看 371关注 0票数 0

最近开始使用jQuery移动开发,我对事件检测的行为有点迷惑。在标准的jQuery中,我总是可以使用

代码语言:javascript
代码运行次数:0
运行
复制
$("#someId").on("click",doSomething());

这将会起作用。但是,我发现使用jQuery mobile时,我必须通过以下方式将事件处理程序绑定到整个文档:

代码语言:javascript
代码运行次数:0
运行
复制
$(document).on("click","#someId",doSomething());

有人知道为什么会这样吗?jQuery mobile处理事件的方式与jQuery如此不同吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-01 20:51:13

当你调用标准的jQuery绑定时,它们就起作用了--也就是说,当你用$("#someId").on("click",doSomething());代码加载页面时,它将查找带有someId标识符的元素,并将doSomething()回调绑定到它。但是在jQuery手机中,当你加载页面时,一些元素不会出现。相反,这些元素是使用AJAX下载的,因此,您在页面加载上执行的绑定没有捕获这些元素。这就是为什么在使用jQuery Mobile时,您通常会使用委托事件绑定(在旧版本的jQuery上,称为活动绑定),这甚至适用于稍后添加到DOM中的元素。Reference

票数 0
EN

Stack Overflow用户

发布于 2013-03-01 20:46:36

jQuery mobile多次使用ajax进行导航,因此元素并不总是存在于DOM中。

这就是人们使用委托事件绑定的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15158082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档