2014-04-11 75 views
-4

我有4个链接。其中3个应该是可见的,但是每当其中一个被点击时,第4个应该出现。如果前3个中的任何一个被按下,任何东西都不应该改变,但如果第4个(第一次点击时出现的那个)被点击,它应该消失,并且应该只有3个。关于如何做的任何想法?可能它会使用JQuery完成?!点击添加附加菜单项

+5

你试过什么吗?我会说是的,我有一些想法。是的可能与jQuery。或者42也许。顺便说一下,我想致富,任何人都可以帮助我?我认为它应该涉及工作,你觉得怎么样?努力工作好吗? –

回答

0

JSFiddle Demo Here

一组链接:

<div> 
    <a href='#' id='link1' onclick='toggle(this)'>link 1</a> 
    <a href='#' id='link2' onclick='toggle(this)'>link 2</a> 
    <a href='#' id='link3' onclick='toggle(this)'>link 3</a> 
    <a href='#' id='link4' style='display:none' onclick='toggle(this)'>link 4</a> 
</div> 

使用JavaScript:

var disp = false; 

function toggle(el) { 
    if (disp) { 
     if (el.id == 'link4') { 
      document.getElementById('link4').style.display='none'; 
      disp = false; 
     } 
    } else { 
     if ((el.id == 'link1') || (el.id == 'link2') || (el.id == 'link3')) { 
      document.getElementById('link4').style.display='block'; 
      disp = true; 
     } 
    } 
} 

当你点击任何第3个环节的,第4会出现,当你点击它4(4链接)就会消失。

编辑:根据要求,here是与衰落相同的演示。至于代码的HTML是相同的,jQuery代码是:

var disp = false; 

function toggle(el) { 
    if (disp) { 
     if (el.id == 'link4') { 
      $('#link4').fadeOut(); 
      disp = false; 
     } 
    } else { 
     if ((el.id == 'link1') || (el.id == 'link2') || (el.id == 'link3')) { 
      $('#link4').fadeIn(); 
      disp = true; 
     } 
    } 
} 
+0

这工作完美,谢谢! – kokozz

+0

任何想法添加什么,所以它fadesin而不是刚刚出现? – kokozz

+0

@kokozz,是的,它需要你使用JQuery而不是纯JavaScript,我会做一个新的演示,并在编辑中添加新的代码。 – user3507600

0

给第三和第四链路的ID和设置样式visibility: hidden;

然后使用JQuery:

var 3rdLink = $("#3rdLinkId"), 
    4thLink = $("#4thLinkId"); //just good practice  
3rdLink.on('click', function(event){ 
    event.preventDefault(); //just in case it's a hyperlink 
    4thLink.css('visibility', 'visible'); 
)}; 

你有很多选择使用JQuery显示元素,这一切都非常的方便。

但是真的,这是全部的地方。一个简单的谷歌搜索就足够了

+1

不确定这是否是预期的行为,但可见性不会从仅隐藏该页面的页面中删除该元素(即,它仍然会影响其他页面元素,因为它仍占用它将占用的空间(如果它可见)。 - 不是说答案不对,我只是想澄清一下行为。 – JRulle

+0

正确。调整可见性属性是使事件上的元素_appear_最基本的方法。考虑到这个问题的非常模糊的规格,我认为这是一个适当的选择建议。 –

0

如果你的链接看起来是这样的:

<a href="#" class="show" onclick="show4()" >link 1</a> 
<a href="#" class="show" onclick="show4()" >link 2</a> 
<a href="#" class="show" onclick="show4()" >link 3</a> 
<a href="#" id="link4" class="hide" onclick="hide4()" >link 4</a> 

您可以使用此:

<style> 
.hide {display: none;} 
.show {display: block;} 
</style> 
<script> 
function show4() 
{ 
    document.getElementById('link4').style.display = "block"; 
} 
function hide4() 
{ 
     document.getElementById('link4').style.display = "none"; 
} 
</script> 
+0

你也可以编写JavaScript来改变类名,像这样'document.getElementById('link4')。className =“[hide | show]”;' – JRulle

0

比方说,你的HTML看起来像这样

<div id="link-container"> 
    <a href="#">link1</a> 
    <a href="#">link2</a> 
    <a href="#">link3</a> 
    <a href="#">link4</a> 
</div> 

的CSS

#link-container a:last-child{display:none} 

的Javascript使用jQuery框架

$(function(){ 
    $('#link-container').on('click', 'a',function(e){ 
     var $t = $(this), 
      $last = $t.siblings('a').addBack().last(); 
     if($last[0] != this){ 
      $last.toggle(); 
     } 
    }); 
}); 

小提琴here