将功能包装在另一个功能中

时间:2014-04-16 22:43:57

标签: javascript jquery function

我正在制作两个div,将它们隐藏在页面加载中,但是当单击一个时,每个div都会单独下拉。当一个人活跃时,另一个人被隐藏。

到目前为止我已经

$( '#div, #div1' ).hide(); {
$( "#div" ).click(function() {
$( "#div1" ).slideUp( "slow", function() {
// Animation complete.
});
});

但我在初始版本中包含点击功能时遇到问题。这些div正在被一个选项列表调用。

有人能指引我走过这个吗?我更喜欢一步一步的例子。我在编写jQuery方面经验非常有限,并且非常感谢帮助。

以下是我正在处理的页面链接。

https://www.gdg.do/prod1/portal/portal.jsp?c=6696885&p=8296647&g=8297605

我想做什么,我想要两个' Group'页面加载时隐藏的区域。然后,一旦在下拉列表中进行了选择,相应的“组”组就会被删除。滑下来。当其他'组'选中第一个消失,新选择的一个可见。

我希望更清楚。

1 个答案:

答案 0 :(得分:1)

var $sliderDivs = $( '#div, #div1' );
$sliderDivs.click(function(e){
    $(this).slideDown("slow");
    $sliderDivs.not(this).slideUp( "slow", function() {
        // Animation complete.
    });
}

所有jQuery事件处理程序都将上下文(设置为this的内容)设置为触发事件的元素。

将选择器保存为$ -prefixed变量的原因是它更容易维护(只需要在一个地方进行更改),并且速度更快(每当你用一个选择器包装时jquery遍历dom) $())

编辑:反对我更好的判断,我给你一个简单的例子:

http://codepen.io/tpblanke/pen/hrlgL

应该让你到达你需要的地方。