【问题标题】:Toggle function on pageinit : jQuery Mobile在 pageinit 上切换功能:jQuery Mobile
【发布时间】:2012-10-17 00:12:12
【问题描述】:

我想使用位于我的 JQM 站点标题中的按钮来切换列表。

此代码仅在页面首次加载时有效。一旦我加载另一个页面,切换功能就会被忽略(尽管如果我输入警报,这似乎可以工作)。

我已将脚本包含在 data-role="page" 元素中。

$(document).bind('pageinit', function (){
    $("#trigger-menu").toggle(function(e) {
          $("ul#menu-list").show();
          //change icon here
          e.preventDefault();
    }, function(e) {
          $("ul#menu-list").hide();
          //change icon here
          e.preventDefault();
    });
});

'pageinit' 是否适合在这种情况下使用? 我正在使用 JQM 1.2.0

【问题讨论】:

  • 你试过用 .on() 代替 .bind 吗?我不确定它在 JQM 中的工作方式是否相同,但我会使用非弃用的方法,看看是否有效。

标签: jquery jquery-mobile


【解决方案1】:

您描述的行为是 pageinit 事件的预期行为,该事件每页仅发生一次。

如果您想在每次页面转换时切换列表,在动画完成后,我建议您使用 pageshow 事件:

$('div').live('pageshow', function(event, ui) {
    alert('This page was just hidden: '+ ui.prevPage);
});

更多详情,请查看 jQuery 移动事件文档here

【讨论】:

  • 谢谢Thomas,我试过这个,但它也不起作用。与上述相同的行为。第一个实例是一种享受,然后所有后续都忽略切换功能。
  • 我已经设置了一个示例来展示如何正确使用 pageshow 事件:jsfiddle.net/ZVypq/2。也许你没有得到你想要的结果,因为你没有以正确的方式使用切换功能。见these examples
  • 做了更多的挖掘,发现了这个stackoverflow.com/questions/11529645/…,看起来这是我使用ID而不是类
猜你喜欢
  • 1970-01-01
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多