2011-02-06 84 views
0

我基本上是新的jQuery的,所以我不知道我没有做我想做什么是最好的方式......奇怪的链接行为

我想使用AJAX加载网页内容,并使得使用#!重写URL永久的URL,它的工作原理除了一些链接好...

这里页面的预览短(整个页面/ CSS/JS HERE),在<div id="undertop">工作良好的联系,但其他<div id="listlabel">没有工作,我不明白为什么...

HTML

<div id="undertop"> 
     <a class="undertop" href="#!/news/Running">Home</a> 
</div> 
<div id="container">  
<div id="blog"> 
    <div class="post">          
     <a href="blablabla">Read More...</a>                
    </div> 
</div>   
<div id="listlabel"> 
     <a class="labelbox" href="#!/news/Running">Running (10)</a><br><br><br> 
     <a class="labelbox" href="#!/news/Corsa">Corsa (5)</a><br><br><br> 
     <a class="labelbox" href="#!/news/PC" >PC (4)</a><br><br><br> 
     <a class="labelbox" href="#!/news/Altro" >Altro (2)</a><br><br><br>    
</div> 

`

jQuery脚本

$(document).ready(function(){ 
    $(document).getUrl(window.location.hash,"#container");  

    $('a').click(
     function(){ 
     alert('clicked'); //debug 
      $(this).getUrl($(this).attr('href'),"#container"); 
     } 
    ); 
}); 

的功能的getURL

$.fn.getUrl = function(urlpass,whereadd){ 
    $(whereadd).html("<div class='ajaxloader'><img src='images/ajax-loader.gif'></div>");  
    var val=urlpass.split("#!");  
    val = val[val.length-1];  
    val = val.split("/"); 
    if(val[1]==null) val[1]="news";   
     $.ajax({ 
      url: val[1]+".php", 
      type: "POST", 
      data: "tag="+val[2], 
      cache: false, 
      success: function(html){ 
      $(document).find(whereadd).html(html); 
     } 
    }); 
} 

预先感谢您

回答

2

从我可以告诉你更多的加载HTML有那些奇怪的链接进入文档,但你不打电话给t他再次转换功能。总体而言,您的方法是与完全相反的unobtrusive JavaScript

现在您的页面内容只能通过JS访问。这对可访问性和搜索引擎优化很不利

而不是通过JavaScript加载所有的内容,你应该提供普通的静态页面与旧的/foo/bar链接。然后,在启用JS的情况下,抓取页面加载中的所有链接并分配点击处理程序以通过AJAX加载内容。

这样你就可以得到花哨的AJAX东西AND一个体面的工作页面,以防万一没有JavaScript。

我还建议你看看semantic layout

无耻插头
对于应用上述技术的示例,请在我的WIP portfolio site看看。

+0

嗨,感谢您的回复..我知道这是不显眼的js的完全相反,而且这个网站只通过JS访问,我的观点不是这个,我问了另一个句子:为什么有些链接工作而其他人不工作??? – Marcx 2011-02-06 17:42:23