2016-01-29 48 views
0

我写了这个函数绑定到一个按钮,当点击切换类提供下拉。唯一的问题是是,我有一个具有相同的功能在同一个页面上的多个按钮,它们都火当点击一个:jQuery .click停止与点击相同的类开放的所有元素

任何和所有帮助非常appricated :)

app.bind.DirectionDropdown = function(){ 
 
    
 
    $('.direction-button').bind('click', function(){ 
 
     
 
    $('.direction-dropdown').toggleClass('active'); 
 
\t  
 
    }); 
 
    
 
};
.fade-in { 
 
    visibility: hidden; 
 
    opacity: 0; 
 
    transition: visibility 0s,opacity .3s ease-in-out,all .3s ease-in-out; 
 
    -webkit-transition: visibility 0s,opacity .3s ease-in-out,all .3s ease-in-out; 
 
    -ms-transition: visibility 0s,opacity .3s ease-in-out,all .3s ease-in-out; 
 
    -moz-transition: visibility 0s,opacity .3s ease-in-out,all .3s ease-in-out; 
 
} 
 
.active { 
 
    visibility: visible; 
 
    opacity: 1; 
 
    transform: translate(0,0); 
 
    -webkit-transform: translate(0,0); 
 
    -moz-transform: translate(0,0); 
 
    -ms-transform: translate(0,0); 
 
}
<a href="#" title="#" class="direction-button">Click to reveal text</a> 
 

 
<div class="direction-dropdown fade-in"> 
 
<p>Reveal this</p> 
 
</div> 
 

 
<a href="#" title="#" class="direction-button">Click to reveal text</a> 
 

 
<div class="direction-dropdown fade-in"> 
 
<p>Reveal this</p> 
 
</div> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>

回答

1

您必须使用this关键字,而只定位.direction-dropdown.direction-button

$('.direction-button').on('click', function(){ 

    $(this).next('.direction-dropdown').toggleClass('active'); 

}); 
+0

这是有道理的,但现在事件火灾和没有任何反应?你还有什么建议吗? – lucasjohnson

+0

@lucasjohnson - 我能做的就是测试它,它似乎工作得很好 - > https://jsfiddle.net/21xj96up/ – adeneo

+0

是的,你是对的。为什么它不在我的文件中一定有一个原因。 – lucasjohnson

1

在你的回调,你需要改用.direction按钮的这样:

$('.direction-button').bind('click', function(){ 

    $(this).toggleClass('active'); 

}); 

$(“方向键”)使JQuery的搜索在整个DOM对象

相关问题