jquery回调 - 在animate方法之后传递id

时间:2014-01-20 03:22:11

标签: jquery callback

我尝试传递一个div id后,在JQUERY中进行动画调用以消除id,但由于某种原因,div在动画中间消失:(

function onMouseOut() {

    $('#tdgoogle').mouseout(function(evento) {

        $('#div1').css("display", "block");

        $('#fotogoogle').animate({
            marginLeft : "0px"
        }, 500, callBackGoogle("div1"));

        function callBackGoogle(cadena) {

            $(cadena).css("display", "none");
        }
    });
}

3 个答案:

答案 0 :(得分:2)

只需传递一个包装函数,就像这样

    $('#fotogoogle').animate({
        marginLeft : "0px"
    }, 500, function() {

        callBackGoogle("div1");
    });

另外,将div1更改为#div1

答案 1 :(得分:0)

使用正确的选择器,id您需要使用#

$(cadena).css("display", "none");

$("#" + cadena).css("display", "none");

更新

....
$('#fotogoogle').animate({
            marginLeft : "0px"
}, 500, function() { callBackGoogle("div1")});

function callBackGoogle(cadena) {    
    $("#" + cadena).css("display", "none");
}

答案 2 :(得分:0)

这可能只是人类视力限制。如果你放慢了动画的速度,你可能会发现它并没有在变化的中间消失

  $('#tdgoogle').mouseout(function(evento) {
    $('#fotogoogle').css("margin-left",0);
    $('#div1').css("display", "block");

    $('#fotogoogle').animate({
        marginLeft  : "100px"
    }, 500,function(){ callBackGoogle("#div1")});

    function callBackGoogle(cadena) {
        $(cadena).css("display", "none");
    }
});

jsfiddle