2012-05-04 36 views
2

我有幾頁,所有內容不同,頁面都使用相對路徑標記在導航欄中鏈接。從可用性的角度來看,id喜歡使用jquery .load從其他頁面獲取內容並將其加載到主索引頁面。因此,它不會必須改變頁面..覆蓋<a href="">當使用jquery .load獲取內容

我願做的是顯示:

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

的SEO /用戶與JS 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

特定的問題,當我嘗試了以上迄今它開始執行js,但然後直接跳轉到html鏈接,所以它的反向工作,即時通訊尋找有js重寫html。當你說權限時,你是否認爲它是一個白帽子技術? – 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'「以指示資源如何呈現結果? –