1

我动态创建一个 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);
});

请在最上面查看我的代码。完整的代码在这里http://jsfiddle.net/tridip/PTdsz/8/

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

为什么删除类不起作用$oDiv.removeClass('test');

请帮忙。谢谢

4

1 回答 1

0

You are returning before you remove the class that's why!

Your $oDiv.removeClass('test'); is never called see:

        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
    }

Because you have a return in the line before.

于 2012-10-08T11:13:22.677 回答