背景不取消鏈接方向
我一直在試圖取消鏈接方向時,點擊事件在jQuery Mobile的應用定位元素上觸發這個愚蠢的小問題所困擾。event.preventDefault()在jQuery Mobile的
比方說,我有一個簡單的多頁文檔是這樣的:
<div data-role="page" id="page-1">
<div data-role="content">
<a href="#page-2" id="mLink">page 2</a>
</div><!-- /content -->
</div><!-- /page -->
<div data-role="page" id="page-2">
<div data-role="content">
</div><!-- /content -->
</div><!-- /page -->
...和JavaScript這樣的:
(function (MyApp, $, undefined) {
'use strict';
// Initializes app
function init() {
$('#mLink').on('click', function (event) {
event.preventDefault();
//event.stopPropagation();
//event.stopImmediatePropagation();
});
}
// jQuery Mobile is ready now -> override defaults
$(document).on("mobileinit", function() {
// Set the default page transition
$.mobile.defaultPageTransition = 'slide';
});
// jQuery Mobile is ready now
$(document).ready(init);
}(window.MyApp = window.MyApp || {}, jQuery));
問題
我只是想不通爲什麼event.preventDefault()
沒有取消頁面轉換。但是,如果我添加event.stopPropagation()
它將取消它。另外,如果我從應用程序中刪除jQuery Mobile庫,它的工作原理沒有event.stopPropagation()
。
問題
這是正常的行爲,它是確定總是叫他們無論是在處理程序,取消路段方向?
注意
我使用jQuery Mobile的只爲它的多頁模板,導航和過渡能力。
其他問題
問題的背後潛伏着我原來的問題有種被「什麼jQuery Mobile的確實給攔截event.preventDefault鏈接()方法來不阻止鏈接的默認操作,即會目標網頁?'
在jQuery mobile中使用'document.ready' [不好](http://jquerymobile.com/test/docs/api/events.html)。改爲使用'$(document).bind('pageinit',function ...)'。 – vcsjones 2012-08-16 20:22:15
@vcsjones是的,我也讀過,但從來不知道如何實現。在一些測試中,我用'$(document).on('pageinit',handler)'替換了'document.ready',但每當我在多頁文檔中更改頁面時,它似乎都會激發。另外,使用'on'代替'pageinit'的'bind'會好嗎? – micadelli 2012-08-16 20:35:46