2012-05-04 13 views
2

Iveはいくつかのページを持っていますが、内容はすべて異なり、ページはすべて相対パスタグを使用してナビにリンクされています。ユーザビリティの観点からは、他のページからコンテンツを取得してメインのインデックスページにロードするためにjquery .loadを使用するのが良いでしょう。だから、ページを変更する必要がwouldntの..私は希望オーバーライド<a href=""> jquery.loadを使用してコンテンツを取得する場合

が行うショーです:

<a id="show-services" href="our_services.html">OUR SERVICES</a>

JSとSEO /ユーザーがオフtunredが、actualy(怒鳴る)を使用して、コンテンツをロードするために、ユーザビリティのために/ uiを目的

google.load("jquery", "1.6.2"); 

google.setOnLoadCallback(function() { 
$("#show-services").click(function(){ 
    $(".content").load("our_service.html .content"); 
    return false; 
    }); 
}); 

ので.LOADはクモはまだサイト構造を参照するようにHTMLタグが(表示されていても。

HTMLにタグをオーバーライドしてい

歓声

+0

あなたが許可を求めて、あるいはあなたが助けを必要と特定の問題に実行していますか? –

+0

どのようなものが動作し、何が動作しないのですか? – sp00m

+0

特定の問題、iveがこれまでのところそれをtryedすると、jsをexectuteし始めますが、その後、htmlリンクに直接ジャンプして、その逆の動作をします。あなたが許可を言うとき、それは白い帽子のSEO技術をより湿潤的に意味するのですか? – sam

答えて

1

あなたが探しているのはe.stopPropagationまたはe.preventDefaultだと思います。これにより、イベントがjsで適用されているため、イベントがバブリングするのを防ぐことができます。つまり、アンカーをクリックするアクションです。ユーザーがjsを有効にしていない場合、コードは実行されないため、アクションはフォールバックしてデフォルトの動作を固定します。

$("#show-services").click(function(e){ 
    e.preventDefault; 
    $(".content").load("our_service.html .content"); 
    return false; 
    }); 
}); 
+0

'return false;'は 'e.preventDefault();'と同じことをする必要があります。 –

+0

'return false;はインラインハンドラでのみ動作し、バウンドイベントでは動作しません。しかし、 'evt.preventDefault()' __always__は機能します!なぜこれが当てはまるのか分かりませんが、そこには... – daniel0mullins

1

your'reがあなたのページにこのように動作し、複数のリンクを持っているつもりならば、私はあなたが一括してそれらすべてをターゲットにすることができますように、それらをすべて特定のクラス名を与えることをお勧めしたい:

$("nav").on("click", ".asyncLoad", function(event){ 
    event.preventDefault(); 
    $(".content").load(event.target.href + ' .content'); 
}); 

これは、リンクがすべて<nav>要素内にある前提としています

<nav> 
    <ul> 
    <li><a class="asyncLoad" href="home.html">Home</a></li> 
    <li><a class="asyncLoad" href="our_services.html">Our Services</a></li> 
    <li><a class="asyncLoad" href="contact_us.html">Contact us</a></li> 
    </ul> 
</nav> 
+0

結果をどのようにレンダリングするかをリソースに示すために "+ '.content'"を追加しますか? –

関連する問題