JQuery(移动)绑定touchstart不会工作

时间:2013-11-20 19:35:24

标签: jquery jquery-mobile panel

我正在使用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();
});

我无法获得警报()所以我认为我的绑定做错了。

有什么想法吗?

0 个答案:

没有答案