在我的Jqmobile代码中,我试图通过将data-transition="slide"
应用于锚链接来传输页面。
问题是链接的页面有我自己编写的自定义jquery ...
当我使用data-transition =“slide”和href命中一个锚时,它肯定会传输,但链接的页面自定义jquery脚本不会运行...
我尝试使用data-ajax-"false"
但在这种情况下自定义脚本运行但不运行data-transition="slide"
...
我想要两个人一起跑......难道可能...... ??
这是一个简单的自定义,在这个我显示/隐藏输入框..
<script type="text/javascript">
$(document).bind("pageinit", function(){
$('#near_index').hide();
$('#find').click(function() {
$('#near_index').show();
});
});
</script>
这是HTML,
<a href="category.html" data-transition="slide" data-ajax-"false"><img src="images/23-bird.png" alt="Category 2" class="ui-li-icon iconSmall">Category 2</a>
答案 0 :(得分:1)
pageinit 适用于插件初始化 - 请参阅here。
因此,当JQM首次加载时,此事件只会触发一次。在您的“页面”(DOM)初始化之后。您加载的任何其他页面都将被拉入DOM,但不会触发另一个 pageinit 。
只需使用任何其他可用事件(上面的链接),例如 pagebeforeshow 或 pageshow 。这些将随着加载到DOM中的每个页面触发。只需在事件处理程序中放入console.log(“HELLO”),看它是否会触发。
编辑转换:
你不能设置data-ajax =“false”并且有一个转换(从页面A到页面B的滑动),因为转换是使用AJAX加载新页面INTO DOM与常规链接(data-ajax)的结果=“false”)删除旧DOM并加载新页面(新DOM)。
JQM的概念是始终保持在SAME“页面”中,只需通过Ajax加载/删除新页面。这就是你可以做转换的方式(加载一个新页面,将它放在旧页面旁边,然后滑动)。
这也可能是你的自定义代码没有触发的原因,因为如果你说 data-ajax =“false”你告诉JQM“我在这里完成了”,并加载一个新的页。
如果您不需要data-ajax =“false”,请将其保留。