如果我有这样的div,我如何通过jquery选择当前链接:
<div id='navigation'>
<a href='users/home'>home</a> |
<a href='projects/browse'>home</a>
<a href='discussions/browse'>home</a>
<a href='search/dosearch'>home</a>
</div>
注意我试过了:
$(document).ready(function(){
$("#navigation a").click( function(event)
{
var clicked = $(this); // jQuery wrapper for clicked element
// ... click-specific code goes here ...
clicked.addClass('selected');
});
});
但是当我点击一个链接时,它会选择一个链接并添加类.selected但是它会重新加载页面以便导航到一个页面然后全部消失。有小费吗?
由于
答案 0 :(得分:5)
这应该有效:
$(document).ready(function() {
var loc = window.location.href; // The URL of the page we're looking at
$('#navigation a').each(function() {
if (loc.indexOf(this.href) !== -1) { // If the URL contains the href of the anchor
$(this).addClass('selected'); // Mark it as selected
}
});
});
它基本上遍历导航项,如果当前页面的URL包含锚点的href,它会将类selected
添加到锚点。
答案 1 :(得分:1)
是的,请从您的click()
回调参数中获取该事件,然后使用e.preventDefault();
(请参阅there)。
或return false
。
或者在链接中添加target='_blank'
属性,以便他们在某个其他页面或标签中打开链接,如果您仍希望浏览器在某处打开该链接。
答案 2 :(得分:0)
$(document).ready(function(){
$("#navigation a").click( function(event)
{
var clicked = $(this); // jQuery wrapper for clicked element
// ... click-specific code goes here ...
clicked.addClass('selected');
return false;
});
});
不要忘记return false
!