我有一个页面,其中有多个href。我想找出哪个href被点击,并根据我想要显示和隐藏div的href点击?
答案 0 :(得分: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>
然后根据href
或更具体的hash
属性打开/切换div,您可以这样做:
$("a").click(function() {
$(".toggleDiv").not(this.hash).hide();
$(this.hash).toggle('fast');
});
这会切换相应的<div>
并使用匹配的ID == href
减去哈希值,并隐藏其他<div>
元素,如果这就是你所追求的...你只需要给它们这样做一个公共类,隐藏除当前链接相关的所有类。
You can view a demo here,看看它是不是你想要的。
答案 1 :(得分: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;
});
});
答案 2 :(得分:1)
这应该给你一些开始:
$('a').click(function()
{
var href = this.href;
// Show/hide your div.
return false;
});
只需在click
处理函数中实现您的逻辑。
答案 3 :(得分:1)
你可以这样做:
$(function(){
$('a').click(function(){
alert('I was clicked, here my href = ' + $(this).attr('href'));
$('#div_id').slideToggle('slow'); // show hide div
return false;
});
});
答案 4 :(得分:1)
你说你想根据href选择div,这可以做到,但与其他一些机制相比,它相对较难。通常,我发现DOM结构中存在一些我可以利用的关系,或者我可以向link / div添加类以使解决方案更简单。例如,通常情况下链接与要显示的div相邻或位于同一容器中。在这种情况下,您可以遍历DOM并选择作为同一容器的兄弟或子的div。
一些例子:
在同一个容器中链接
$('a.menu-item').click( function() {
$('div.content').hide(); // hide all items
$(this).parent().find('div.content').show(); // show associated item
});
以与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();
});