我正在使用jquery mobile进行Web应用程序。现在,你知道;-),jquery mobile使用普通的点击事件非常慢。
我找到了一些加速导航的各种解决方案,其中之一就是:
而不是使用<a href="#ID" data-role....>...</a>
我使用:<a id="ID_btn">...</a>
然后:
$('#ID_btn').bind('touchstart', function(e) {
event.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
if(event.handled !== true) {
$.mobile.changePage("#ID",{ transition: "slide"});
event.handled = true;
}
});
这非常好用,可以将应用程序的速度从1秒延迟到100-200毫秒。
但是有一个棘手的按钮不能在上面显示的工作。这是显示我的根面板的按钮:
所以我有:
<body>
<div data-role="page" id="news" data-theme="a" data-content-theme="a">
<div data-role="panel" id="menue" data-position="left" data-theme="b" >
<p>test</p>
</div>
<div data-role="header" id="news_header">
<h1>News</h1>
<a id="#menue_btn" data-icon="bars" class="ui-btn-left">Menue</a>
</div>
<div data-role="content" id="news_content">
<ul data-role="listview" id="news_content_list" data-inset="true">
</ul>
</div>
</div>
以及JS片段:
function init(){
menue = $('#menue');
menueBtn = $('#menue_btn');
menueBtn.bind('touchstart', function(e) {
event.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
if(event.handled !== true) {
//alert(1);
menue.panel("open", {display: 'push', position: 'left'});
event.handled = true;
}
});
}
$( document ).ready(function() {
init();
});
我无法获得警报()所以我认为我的绑定做错了。
有什么想法吗?