1

我很难理解如何使用 jQuery Mobile 的 pagecreate 将一些 jQuery 函数加载到页面中。任何时候加载页面(无论是直接访问还是单击),我都希望能够访问下面的 swipeleft 功能...

如果我直接访问该页面,此功能正常,但一旦我尝试导航回它(即通过 href 标签到达那里),它就会停止工作。有任何想法吗?谢谢!

<script type='text/javascript'>
$('#listitem').live('pagecreate',function(event){
$.event.special.swipe.horizontalDistanceThreshold = 130;
$("#listitem").swipeleft(function() {
    $('#settings_click').click();
});
});
</script>

<div data-role="page" id="listitem">
<?php //content in here ?>
</div>
4

1 回答 1

2

我给你做了一个工作的例子:http: //jsfiddle.net/Gajotres/QFuGK/

$(document).on('pagebeforeshow', '#listitem', function(event){       
    $.event.special.swipe.horizontalDistanceThreshold = 130;        
    $(document).off('swipeleft').on('swipeleft', '#listitem', function(){     
        $('#settings_click').trigger('click');
    });        

    $(document).off('click').on('click', '#settings_click', function(){  
        alert('Button clicked');
    });         
});

您应该使用 pagebeforeshow 事件更改您的 pagecreate。

要测试此代码,请在一个工作示例中转到另一个页面并返回。滑动事件将正常触发。

还有一件事, .off( 方法用于在再次应用之前删除事件,没有它 swipeleft 事件将在您返回页面时一次又一次地绑定。

于 2013-03-23T09:53:56.023 回答