1

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

1 回答 1

1

pageinit用于插件初始化 - 请参见此处

所以这个事件只会在 JQM 首次加载时触发一次。在你的“页面”(DOM)被初始化之后。您加载的任何其他页面都将被拉入 DOM,但不会触发另一个pageinit

只需使用任何其他可用事件(上面的链接),例如pagebeforeshowpageshow。这些将随着加载到 DOM 中的每个页面而触发。只需在事件处理程序中放置一个 console.log("HELLO") 并查看它是否触发。

编辑转换:
您不能设置 data-ajax="false" 并进行转换(从页面 A 滑动到页面 B),因为转换是使用 AJAX 将新页面加载到 DOM 与常规链接的结果( data-ajax="false") 删除旧 DOM 并加载新页面(新 DOM)。

JQM 的概念是始终保持在同一个“页面”中,并且只通过 Ajax 加载/加载新页面。这就是您可以进行转换的方式(加载新页面,将其放在旧页面旁边,然后滑动)。

这也可能是您的自定义代码没有触发的原因,因为如果您说data-ajax="false"您是在告诉 JQM“我在这里完成了”,并加载一个新页面。

如果您不需要 data-ajax="false",请忽略它。

于 2012-06-08T08:23:28.490 回答