jQuery Mobile - 如何将禁用Ajax链接绑定到特定类?

4

我正在Jquery Mobile上工作一个多列布局。

当用户打开多列页面时,我想禁用JQM ajaxlinks导航(并切换到“人工导航和历史记录”)。所以基本上我试图绑定到一个具有类名=“ui-hash-blocked”的链接或列表项。当用户离开页面时,我会再次启用ajaxlinks。

我喜欢这个想法,但无法让这段代码工作(错误:$ .mobile' [未定义])

$('.ui-hash-block').click(function ()
             {
             $.mobile.ajaxLinksEnabled = false;               
             });

语法有问题吗?

我知道调用JQM之前调用$.mobile会导致错误,但是由于我仅在链接/列表项被点击时调用此函数,因此JQM应该已经被初始化。

感谢帮助和圣诞快乐!

常见问题

附注:如果需要更多代码,我可以提供示例。

3个回答

18

如果你只希望在某些链接上实现这种行为,就在链接中添加data-ajax="false"


谢谢!一直在寻找这个 :) - Simon
如何禁用 Ajax 来处理 <input type="image"> 元素? - mans

2
$(document).bind("mobileinit", function(){
  //Disable ajax link
  $('.disable-ajax').click(function(event){
    $.mobile.ajaxFormsEnabled = false;
  });
});

有点晚了 :-) 但我会尽力。谢谢。 - frequent

0

这个 $.mobile.* 是一堆配置选项,它们在很早的时候就被使用了。这就是为什么当初始化它时会显示 here。这个设置是全局的。

你正在尝试的做法有些hacky。但我相信你可以在正确的时刻更改设置,这应该是以下其中之一:

  1. 在点击之前 - 在你的示例中尝试 mousedown 事件而不是 click

  2. 在项目被 JQM pimped 之前:

    $.mobile.ajaxLinksEnabled = false;
    $('theNEWelement').appendTo('somewhere').page();
    $.mobile.ajaxLinksEnabled = false;

评论结果,我会编辑标记哪一个起作用了。我现在无法测试它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接