附加后FadeIn不工作

时间:2014-07-02 22:41:47

标签: javascript jquery html dom fade

我做了一个以这种方式附加的表结构:

var table = $('<table></table>');

table.append($('<tr>').append($('<td>')
                         .addClass('col2 linhaSub')
                         .append($('<span>')
                           .toggleClass('alterado', modelo.ListaRegistros[3][0].Efeito)//returns true or false
                           .text(modelo.ListaRegistros[3][0].ID))
            ))

创建表后,我试图通过这种方法使所有“alterado”状态具有淡入淡出效果:

$( "span" ).each(function( i ) {

if ( this.className === "alterado" ) {
 $(this).fadeIn(300).fadeOut(300).fadeIn(300).fadeOut(300).fadeIn(300);
}
});

$("body").html(table);

在输入IF之后,淡入淡出效果未被应用,如果我在追加.fadeIn(300).fadeOut(300).fadeIn(300).fadeOut(300).fadeIn(300)时添加span,它就像魅力一样。我不能这样做,因为它是有条件的,而且是很多跨度的。

我做错了什么让这个fadeIn正常地按照我正在尝试的方式工作?

IF返回true,因为我调试了它并进行了检查。

由于

2 个答案:

答案 0 :(得分:1)

看起来你最后错过了一个结束)。此外,var不是Var

   var table = $('<table></table>');

 table.append($('<tr>').append($('<td>')
                     .addClass('col2 linhaSub')
                     .append($('<span>')
         .toggleClass('alterado', modelo.ListaRegistros[3][0].Efeito)
                       .text(modelo.ListaRegistros[3][0].ID))
        ))

答案 1 :(得分:1)

考虑到 @Bellash 指出的问题在撰写问题时是拼写错误,您的代码运行良好:see this working fiddle with proper syntax and indentation

正如您所指出的,modelo.ListaRegistros[3][0].Efeito正在返回true:这意味着它应该工作并通过if语句。


可能存在的问题是 table 变量 。确保在要求其跨度消失后附加创建的表。看看我是如何在上述小提琴中完成的:

var table = $('<table></table>');

table.append(
    $('<tr>').append(
        $('<td>').addClass('col2 linhaSub').append(
            $('<span>').toggleClass('alterado', true).text("test")
        )
    )
);

$("body").append(table);

$("span").each(function(i) {
    if (this.className === "alterado") {
       $(this).fadeIn(300).fadeOut(300).fadeIn(300).fadeOut(300).fadeIn(300);
    }
});