2013-05-01 106 views
0

我有下面的代码使用加载外部page.html中内容的JQuery:AJAX和jQuery的负载锚

SCRIPT:

<script type="text/javascript">  
$(
function(){ 
var jContent = $("#content"); 

$("nav ul li a").click(function(objEvent){ 
var jLink = $(this); ... 

HTML

<nav> 
<ul> 
<li><a href="page1.html">Page 1</a></li> 
<li><a href="page2.html">Page 2</a></li> 
<li><a href="page3.html">Page 3</a></li> 
</ul> 
</nav> 


<div id="content">Here load content</div> 

该脚本工作正常,但是...我想要一些内容将它们加载到一个特定的锚点(page1.html#anchor)

http://www.libelulastudio.com/demo/ajax/01/

我应该添加到我的脚本中?由于

///////////////////////

你好终于用下面的代码解决:

<script> $(document).ready(function(){ $("a#dos").click(function(){ 
     $("#content").load("page2.html", function(responseTxt,statusTxt,xhr){ 
     if(statusTxt=="success") 
     $(function() { 
    $(document).scrollTop($("#p2").offset().top); }); 
     if(statusTxt=="error") 
     alert("Error: "+xhr.status+": "+xhr.statusText); 
     }); 
    }); ... 

HTML

<a href="#" id="dos">Go to Product 2</a> 

<div id="content">... content ... </div> 
+0

你到底想要做什么? – 2013-05-01 03:23:44

+0

如果我运行我的链接到锚点不工作:page1.html#anchor – 2013-05-01 03:28:04

回答

3

尝试:

<script lang='javascript'> 
     $(document).ready(function(){ 
      $('.ajaxload').click(function(){ 
       $('#content_div').load($(this).attr('id')+'.html'); 
      }); 
     }); 
</script> 

<nav> 
    <ul> 
     <li><a class='ajaxload' href="javascript:void(0)" id='page1'>Page 1</a></li> 
     <li><a class='ajaxload' href="javascript:void(0)" id='page2'>Page 2</a></li> 
     <li><a class='ajaxload' href="javascript:void(0)" id='page3'>Page 3</a></li> 
     <li><a href='#page4_content'>Page 4</a></li> 
    </ul> 
</nav> 

<div id='content_div'> 
    <!--Here your content gets loaded--> 
</div> 
<div id='page4_content'> 
    <!--Page 4 content here--> 
</div> 

更多INF Ø在jQuery AJAX load()

+0

谢谢,让我试试 – 2013-05-01 03:47:31

+0

现在,您的代码工作正常,因为我可以加载内容,也可以作为一个锚点示例:page1#anchor – 2013-05-02 15:06:15

+0

查看已更新回答 – hsuk 2013-05-03 03:43:01

1

根据您最后的评论,你需要通过event作为参数内click event handler然后调用preventDefault所以锚将重定向你,你已经通过objEvent.

所以代码看起来像下面

$("nav ul li a").click(function(objEvent){ 
    objEvent.preventDefault(); 
+0

谢谢,让我试试 – 2013-05-01 03:42:42