我动态创建一个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
if(oDiv.hasClass('test')) {}
为什么删除类不像$oDiv.removeClass('test');
请帮忙。感谢
答案 0 :(得分:0)
在您删除课程之前,您正在返回,这就是原因!
您的$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
}
因为你之前有回归。