2012-04-25 15 views
7

jQuery Mobileの使用DOMの特定の部分内のリンクでajax呼び出しを無効にしたいとします。jQuery Mobileとの通常のリンクからのajax呼び出しの削除

は私がjquerymobileのAJAXを使用したくない

data-ajax = false 

たびに置きたくありません。例えば

、「コンテンツ」の子である任意のリンク:

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

私は「コンテンツ」の子であるすべてのリンクに「偽=データ-AJAX」を追加したいと思います

jqueryでこれを行う方法はありますか?あなたはアンカータグからAJAXリンクの動作を無効にしたい場合は

答えて

18

、あなたはリンクで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

これはもっと遅い選択肢です。 '.attr'のsetterバージョンがコレクションに作用するので、' .each'の呼び出しは不要です。シンボルテーブルへの追加を避ける '$("。content a ")。each()も呼び出すことができます。 –

+0

'rel =" external "'を 'data-ajax = false'を追加するのと同じくらい悪くはしませんか?良い答えですが、私はそれがOPが望んでいないのと同じ要件を作成すると思います。 –

+0

@ JoshAllen OPは、属性を特定のセレクタに自動的に追加する簡単な方法を求めていました。もし属性をオフにしたければ、何もしないで解決することができました。 –

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

私はそれを動作させるためにものrel =「外部」とターゲット=「_自己」を追加する必要がありました。

特定の条件下では、 Ajaxリクエストの代わりに通常のhttpリクエストが使用されます。これが真であるケースは、 の外部ウェブサイトのページにリンクする場合です。

  • のrel =外部

  • ターゲットを(任意の値では、そのような "_blank" のように)

:あなたはまた、次のリンク属性を通じて通常のHTTPリクエストが を作成することを指定することができます
関連する問題