2012-04-25 46 views
7

使用jQuery Mobile我想禁用DOM特定部分内的链接上的ajax调用。使用jQuery Mobile从常规链接中删除ajax调用

我不想

data-ajax = false 

我不想使用AJAX jquerymobile每次放。

例如,那就是“内容”孩子的任何链接:

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

我想补充的“数据AJAX =假”到每一个环节即是“内容”

孩子

有没有办法用jQuery来做到这一点?

回答

18

如果要禁用从锚标记的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> 

如果您想为内容的div里面的一些一个标签为此在jQuery的,你可以尝试这样的

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

下面是一个简单http://jsfiddle.net/4WEBk/3/

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

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

这是一个较慢的选择。对'.each'的调用是不必要的,因为'.attr'的setter版本在集合上工作。你也可以调用'$(“。content a”)。each()'来避免添加到符号表中。 – 2012-04-25 16:46:04

+0

不会添加'rel =“external”'与添加'data-ajax = false'一样糟糕?很好的答案,但我认为它创造了OP不需要的相同要求。 – 2012-04-25 16:46:59

+0

@JoshAllen OP要求一个简单的方法来自动添加一个属性到一个特定的选择器..如果他想离开属性* off *,他可以通过无所事事来解决这个问题。 – 2012-04-25 16:50:44

5
$(".content a").attr('data-ajax', false); 
0

我不得不添加的rel =“外在”和目标=“_自我”也使它工作。

在某些情况下,将使用正常的http请求代替 Ajax请求。一种情况是,当链接到外部网站 的页面时。也可以指定一个正常的http请求是 由通过下面的链接属性:

  • 相对=外部

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