在開發一個手機網站的時候,使用了jquerymobile的js,以便手機網站支持觸摸屏左右拖動的事件處理,結果上述功能做好了,卻發現原有的click點擊事件統統都會被執行兩次。代碼很簡單,示例如下:<!DocType html><html><head><title>jquerymobile click triggered twice ?</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"> </head><body><h1>奇怪了???!</h1><p>Some content here.</p><p><img id="test" src="http://www.51roms.com/images/crazy.jpg" alt="Click me"></p><script src="http://code.jquery.com/jquery-1.8.2.min.js"></script><script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script><script>var i = 0;
$(document).bind('pageinit', function() {
$('#test').bind('click', function(e) { alert('clicked: ' + i);
i ++;
});
});</script></body></html>補充遇到問題的環境系統:windows XP 和 android 2.3瀏覽器:Firefox 最新版,android 2.3自帶的chrome用html5,引入jquery 1.8和jquerymobile 1.2.0
2 回答

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
我在本地用你的代碼測試了下,也有同樣的問題。
然后把jQuery Mobile移除綁定到ready上,就沒有這個問題了。
所以應該是jQueryMobile的問題,或者是你使用的方式有問題。
PS:沒有用過jQuery Mobile
----
看了下jQuery Mobile的文檔,最外層加了個div,設置 data-role="page"就沒有問題了

絕地無雙
TA貢獻1946條經驗 獲得超4個贊
我最后總結了一套方法
1. body最外層加<div data-role="page"></div>
2. 所有的js放在<div data-role="page"></div>
保證OK
- 2 回答
- 0 關注
- 441 瀏覽
添加回答
舉報
0/150
提交
取消