2011-01-05 39 views
0

我正在使用show和hide在jQuery中。基本上我的页面上有很多类(不是唯一的ID),它们都有一个显示和隐藏功能。但是,当选择下拉列表中的某个元素时,该内容也会隐藏并显示。重置。在一个函数内使用触发器

所以这意味着我有2个JavaScript函数设置。 1根据下拉菜单显示和隐藏,另一个在点击链接时显示和隐藏。

我遇到的问题是链接文本根据div打开或关闭使用.toggle旋转。如果我在下拉列表中选择选项1并打开div,则切换工作正常。但是,如果您在下拉列表中选择其他选项,然后切换链接文字,则会变得混乱并显示错误的文字。

我需要能够重置切换到隐藏下拉式使用,但我一直在尝试过去的几天,似乎无法让它工作!

这里是jQuery代码:

第一个功能是为下拉显示和隐藏,第二个是用于的onclick显示和隐藏。

$(document).ready(function(){ 
    $('.box').hide(); 
    $('#dropdown').change(function() { 
    $('.box').hide(); 
    $('#div' + $(this).val()).show(); 
    $('.redbox').hide();  


}); 
}); 

$(document).ready(function(){ 

     var showText='Account details'; //Closed text variable 
     var hideText='Account details'; //Open text variable 

     var is_visible = false; 

     $('.redbox').prev().append(' <a href="#" class="toggleLink copyLink" >'+showText+'</a>'); 
     $('.redbox').hide(); 

     $('a.toggleLink').click(function() { 
      is_visible = !is_visible; 
     $(this).html((!is_visible) ? showText : hideText); 

     $(this).parent().next('.redbox').toggle(); 

     return false; 

    }); 
    }); 

HTML代码相当长,所以我简化了一下,我们还加载了其他动态JavaScript属性的流式加载。此代码用于下拉菜单中的每个元素。

<a href="#" class="toggleLink copyLink"></a>. 

<div class="redbox redbox_scroller_sav"> 

    <div id="coda-nav-1" class="coda-nav"> 
     <ul> 
    <li><a href="#1">Pane 1</a></li> 
    <li><a href="#2">Pane 2</a></li> 
     </ul> 
</div> 

<div class="coda-slider preload" id="coda-slider-1"> 
    <div class="panel"> 
     <div class="panel-wrapper"> 
       Pane 1 text 
     </div> 
    </div> 

    <div class="panel"> 
     <div class="panel-wrapper"> 
       Pane 2 text 
     </div> 
    </div> 
</div><!-- /coda-slider --> 

</div><!-- /redbox div --> 

我希望有人能帮助我!在此先感谢

+0

你可以给你的HTML代码吗? – Hannes 2011-01-05 13:08:31

回答

0

我不是完全确信您的代码正在做什么,但.toggle()有一个可选参数。如果它是true,您将显示选择;如果它是false,它将隐藏选择。

+0

该代码是我从网站上使用的。我认为切换必须在2个变量showText和hideText之间移动。理想情况下,我想在使用下拉列表时重置切换到showText。这是否更有意义? – Barlow1984 2011-01-05 13:11:44