Jqmobile中的数据转换和数据混合

时间:2012-06-08 06:02:01

标签: jquery jquery-mobile transitions

在我的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>

1 个答案:

答案 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”,请将其保留。