【问题标题】:Remove ajax call from regular links with jQuery Mobile使用 jQuery Mobile 从常规链接中删除 ajax 调用
【发布时间】:2012-04-25 16:37:38
【问题描述】:

使用 jQuery Mobile 我想禁用 DOM 特定部分中链接的 ajax 调用。

我不想放一个

data-ajax = false

每次我不想使用 jquerymobile ajax。

例如,任何属于“内容”子级的链接:

<div class="content">
    <a href="http://externalwebsite.com">External Link</a>
</div>

我想将“data-ajax = false”添加到作为“内容”子级的每个链接上

有没有办法用 jquery 做到这一点?

【问题讨论】:

    标签: jquery jquery-mobile


    【解决方案1】:

    如果你想禁用锚标记的 ajax 链接行为,你可以在链接中输入rel=external,链接将在没有 ajax 的情况下加载,然后你的 url 将是正常的。

    http://jquerymobile.com/demos/1.0a4.1/#docs/pages/docs-navmodel.html

    <a href="User/somepage" rel="external" />I wont be using ajax for navigation</a>
    

    如果你想在 jQuery 中为内容 div 中的一些标签执行此操作,你可以这样尝试

    $(function(){
      $(".content a").each(function(){
        $(this).attr("rel","external");
      });
    });
    

    这是一个示例http://jsfiddle.net/4WEBk/3/

    更简化的版本。 (感谢tandu指点)

    $(function(){
      $(".content a").attr("rel","external");
    });
    

    【讨论】:

    • 这是一个较慢的选择。对.each 的调用是不必要的,因为.attr 的setter 版本适用于集合。你也可以调用$(".content a").each() 来避免添加到符号表中。
    • 添加rel="external" 会不会和添加data-ajax=false 一样糟糕?很好的答案,但我认为它产生了 OP 不想要的相同要求。
    • @JoshAllen OP 要求一种简单的方法来自动将属性添加到特定选择器.. 如果他想保留属性 off,他可以通过以下方式解决这个问题什么都不做。
    • @JoshAllen:根据 jQMobile 文档,添加 rel 将阻止链接被 ajaxified。 jquerymobile.com/demos/1.0a4.1/#docs/pages/docs-navmodel.html
    • @tandu 我现在看到了。感谢您的澄清!
    【解决方案2】:
    $(".content a").attr('data-ajax', false);
    

    【讨论】:

      【解决方案3】:

      我还必须添加 rel="external" 和 target="_self" 才能使其正常工作。

      在某些情况下,会使用普通的http请求代替 Ajax 请求。一种情况是这样的,当链接到 外部网站。你也可以指定一个普通的http请求 通过以下链接属性制作:

      • rel=external

      • 目标(具有任何值,例如“_blank”)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-28
        • 1970-01-01
        • 1970-01-01
        • 2016-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多