2012-05-04 37 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'“以指示资源如何呈现结果? –