我很难理解如何使用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>
答案 0 :(得分: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事件会在你返回页面时反复绑定。