将一个函数封装在另一个函数中

Wrapping a function within another

本文关键字:函数 封装 另一个 一个      更新时间:2023-09-26

我正在处理两个div,在页面加载时将它们隐藏起来,但在单击其中一个时将其分别下拉。当其中一个处于活动状态时,另一个处于隐藏状态。

到目前为止,我有

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

但是我在将click函数封装在初始函数中时遇到了问题。div正被一个picklist调用。

有人能带我走过这个吗?我更喜欢一个循序渐进的例子。我在编写jQuery方面的经验非常有限,非常感谢您的帮助。

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

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

我想做的是,我想在页面加载时隐藏两个"组"区域。然后,一旦在下拉列表中进行了选择,相应的"组"就会向下滑动。当选择另一个"组"时,第一个组消失,新选择的组可见。

我希望这一点更清楚。

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

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

将选择器保存为前缀为$的变量的原因是,它更易于维护(只需在一个地方进行更改),而且速度更快(每次用$()包装选择器时,jquery都会遍历dom)

编辑:根据我的判断,我给你举了一个快速的例子:

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

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