
1. 引言jQuery Mobile 是一个基于 HTML5 的移动端 UI 框架它内置了丰富的触摸事件、页面生命周期事件和滚动事件。理解这些事件是开发流畅移动应用的关键。本文将系统讲解 jQuery Mobile 的核心事件体系并通过大量可运行的代码实例帮助读者快速上手。2. 事件基础与页面初始化在 jQuery Mobile 中页面事件与普通 jQuery 事件有所不同。由于框架采用 AJAX 导航机制传统的$(document).ready()并不总是适用取而代之的是pageinit事件。!DOCTYPE html html head meta charsetutf-8 meta nameviewport contentwidthdevice-width, initial-scale1 title页面初始化事件/title link relstylesheet hrefhttps://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css script srchttps://code.jquery.com/jquery-1.11.3.min.js/script script srchttps://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js/script /head body div>div>div>div>div>div>!DOCTYPE html html head meta charsetutf-8 meta nameviewport contentwidthdevice-width, initial-scale1 title待办事项应用/title link relstylesheet hrefhttps://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css script srchttps://code.jquery.com/jquery-1.11.3.min.js/script script srchttps://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js/script /head body div data-rolepage idtodo div data-roleheaderh1待办事项/h1/div div data-rolecontent div data-rolefieldcontain input typetext idnewTodo placeholder输入新事项 button idaddTodo添加/button /div ul idtodoList data-rolelistview/ul /div /div script $(document).on(pageinit, #todo, function() { // 添加待办事项 $(#addTodo).on(tap, function() { var text $(#newTodo).val().trim(); if (text ) { alert(请输入内容); return; } $(#todoList).append(li text /li); $(#todoList).listview(refresh); $(#newTodo).val(); }); // 点击完成事项 $(#todoList).on(tap, li, function() { $(this).toggleClass(ui-li-has-alt); $(this).css(text-decoration, line-through); }); // 向左滑动删除事项 $(#todoList).on(swipeleft, li, function() { $(this).remove(); $(#todoList).listview(refresh); }); // 长按清空全部 $(#todoList).on(taphold, function() { if (confirm(确定清空所有事项)) { $(#todoList).empty(); $(#todoList).listview(refresh); } }); }); /script /body /html该应用演示了tap、swipeleft、taphold以及事件委托的综合运用覆盖了移动端交互的常见场景。8. 常见问题与注意事项事件重复绑定使用pageinit时如果页面被多次访问事件可能重复绑定。建议使用$(document).on()进行委托绑定或在绑定前先off()解绑。页面缓存开启data-dom-cachetrue后pageinit只触发一次而pageshow每次都会触发适合放置需要刷新的逻辑。滚动事件性能scrollstart和scrollstop在复杂页面中可能频繁触发建议在回调中避免执行高开销操作。触摸事件冲突tap与taphold同时绑定时长按会先触发taphold松开后不会触发tap设计交互时需注意。9. 总结jQuery Mobile 的事件体系覆盖了移动端开发的核心交互需求。掌握pageinit、触摸事件、生命周期事件和滚动事件并结合事件委托处理动态内容就能构建出流畅的移动端应用。建议读者将上述代码复制到本地运行逐一观察事件触发顺序和交互效果加深理解。