Jquery 尝试使用add类模拟切换函数

Jquery 尝试使用add类模拟切换函数,jquery,jquery-animate,Jquery,Jquery Animate,我动态创建了一个div,并将这个动态div添加到另一个div中。我正在尝试设置div的动画,我使用添加/删除类和hasclass函数来实现某种切换功能。但是我的代码不能正常工作。看看这部分,告诉我有什么问题 if(oDiv.hasClass('test')) { return oDiv.animate({ opacity: 'toggle', marginTop:('-' + allChildDivHeight + 'px') }, speed, easing, callback); $

我动态创建了一个div,并将这个动态div添加到另一个div中。我正在尝试设置div的动画,我使用添加/删除类和hasclass函数来实现某种切换功能。但是我的代码不能正常工作。看看这部分,告诉我有什么问题

if(oDiv.hasClass('test')) {
return oDiv.animate({ opacity: 'toggle', marginTop:('-' + allChildDivHeight + 'px')    },  speed, easing, callback);
$oDiv.removeClass('test');        
    }
    else
    {

 return oDiv.animate({ opacity: 'toggle', marginTop:('-' + (margin_top+allChildDivHeight )+ 'px') }, speed, easing, callback);
 oDiv.addClass('test');

    }
我可以使用jquery切换函数来实现类似这样的效果吗

$('.btnName').click(function() {
$('#panel').toggle(function() {
$(this).animate({ 
 // style change
}, 500);
},
function() {
$(this).animate({ 
 // style change back
}, 500);
});
上面的代码只是一个示例。我只是想知道我能不能使用一些类似切换功能的东西

我用下面的方法写了它,但仍然不起作用

oDiv.toggle(function()
{
alert('class'+allChildDivHeight );
return oDiv.animate({ opacity: 'toggle', marginTop:('-' + allChildDivHeight + 'px') }, speed, easing, callback);

},function()
{
alert('no class'+(margin_top+allChildDivHeight));
return oDiv.animate({ opacity: 'toggle', marginTop:('-' + (margin_top+allChildDivHeight )+ 'px') }, speed, easing, callback);
});
请看我的代码在顶部最多。完整的代码在这里

请去那里看看我的完整代码,并告诉我为什么总是控制在这个如果
if(oDiv.hasClass('test')){}

为什么remove类不像
$oDiv.removeClass('test')那样工作


请帮忙。谢谢

您在删除该类之前返回,这就是原因

您的
$oDiv.removeClass('test')从未被调用,请参见:

        if(oDiv.hasClass('test')) {
        alert('class'+allChildDivHeight );
        return oDiv.animate({ opacity: 'toggle', marginTop:('-' + allChildDivHeight + 'px') }, speed, easing, callback);
        $oDiv.removeClass('test');        <------ This is never called
    }
if(oDiv.hasClass('test')){
警报('class'+allChildDivHeight);
返回oDiv.animate({opacity:'toggle',marginTop:('-'+allChildDivHeight+'px'))},速度,缓和,回调);
$oDiv.removeClass(“测试”);