2010-05-29 80 views
1

我有一個頁面,其中有多個hrefs。我想找出哪個href被點擊,並基於該href點擊我想顯示和隱藏一個div?jquery a href recognition

+5

這不是一個免費的編碼服務。告訴我們你已經嘗試了什麼,我們可以幫助你填補空白。這只是一個公然告訴我codz。付出一些努力。 – redsquare 2010-05-29 11:37:42

+1

@Delan - 避免標記這樣的問題,它已經在meta上詳細討論過了。 – 2010-05-29 11:43:00

+0

redsquare - 您在寫作時注意到我的努力 – maztt 2010-05-29 12:00:07

回答

4

我會假設你有過在href的位置控制,你想擁有最簡單的標記可能,在這種情況下,你可以做這樣的事情:

<a href="#div1">Toggle Div 1</a> 
<a href="#div2">Toggle Div 2</a> 

<div id="div1" class="toggleDiv">Div 1 Content</div> 
<div id="div2" class="toggleDiv">Div 2 Content</div> 

然後打開/切換基於一個div在href,或者更具體地說是hash屬性,你可以這樣做:

$("a").click(function() { 
    $(".toggleDiv").not(this.hash).hide(); 
    $(this.hash).toggle('fast'); 
});​​​ 

這將觸發與匹配ID == href減去哈希相應<div>並隱藏其他<div>元素,如果這就是你以後..你只用gi來做這件事把他們分成一個普通的班級,並隱藏除當前鏈接以外的所有人員。

You can view a demo here看看你是在做什麼。

+0

+1對於您描述的問題,這是一個很好的解決方案。當javascript關閉時,它傾向於優雅地退化。很多標籤/手風琴插件都是以這種方式工作的。我希望我曾想過把它加到我的例子中。出於某種原因,我*總是*認爲hrefs是完整的網址。 – tvanfosson 2010-05-29 12:36:41

1

你可以附上click處理到錨:

$(function() { 
    $('a').click(function() { 
     var href = this.href; 
     // test the href and show/hide the div: 
     $('#someDiv').show(); 

     // return false to avoid following the link 
     return false; 
    }); 
}); 
1

這應該給你的東西入手:

$('a').click(function() 
{ 
    var href = this.href; 

    // Show/hide your div. 
    return false; 
}); 

只實現在click處理函數你的邏輯。

1

你可以這樣做:

$(function(){ 
$('a').click(function(){ 
    alert('I was clicked, here my href = ' + $(this).attr('href')); 
    $('#div_id').slideToggle('slow'); // show hide div 
    return false; 
}); 
}); 
1

你說,你要選擇基礎的href的股利,並可以做,但它比較硬相比,一些其他機制。通常情況下,我發現DOM結構中有一些關係可以替代,或者我可以向鏈接/ div添加類以使解決方案更簡單。例如,通常情況下,該鏈接與顯示的div相鄰或位於相同的容器中。在這種情況下,您可以遍歷DOM並選擇同一個容器的同級或子級的div。

一些例子:在同一容器

鏈接

$('a.menu-item').click(function() { 
     $('div.content').hide(); // hide all items 
     $(this).parent().find('div.content').show(); // show associated item 
}); 

Link在相同的順序的div

$('a.menu-item').click(function() { 
     var index = $('a.menu-item').eq(this).index(); // get index 
     $('div.content').hide().eq(index).show(); // hide all, show corresponding 
}); 

在相同的類(假定鏈路作爲一個單一的,獨特的,與div共享課程)

$('a').click(function() { 
    $('div.content').hide(); 
    $('div').hasClass($(this).attr('class')).show(); 
});