1

我试图在 jquery 函数中调用用户定义的函数但无济于事我试过这个:

function close_quote_bar() {
    alert('oh hai');
}


if($('#sliding_quote:visible')) {

    $('#sliding_quote').slideUp();
    $('#trans_div').animate({opacity: 0.0}).css('display','none').close_quote_bar;

}

和这个

//Function to close quote bar
function close_quote_bar() {
    alert('oh hai');
}

$('#get_quote_bar img').click(function() {                          
    if($('#sliding_quote:visible')) {               
        $('#sliding_quote').slideUp();
        $('#trans_div').animate({opacity: 0.0}).css('display','none').close_quote_bar;

    }               
});

运气不太好!当我调用 close_quote_bar 时什么都没有发生,或者我得到一个 Object is missing method 错误!

希望你们能指出我正确的方向我真的在努力解决这个问题

4

5 回答 5

2

我假设你想要这样的东西:

$('#sliding_quote:visible').slideUp( function(){
    $('#trans_div').css('display','none');
    close_quote_bar();
} );

它使用上滑回调将对象设置为不显示并运行您的函数。此代码还取消了 if 语句,而是使用选择器仅影响可见元素。

于 2013-02-06T23:33:06.200 回答
0

事实证明该函数正在被调用,并且它不是范围或类似问题的问题。

我有另一个在滚动(.scroll)上执行的函数与该函数冲突,因此它的行为异常并且似乎没有执行。

于 2013-02-07T07:28:57.887 回答
0

以@laurencek 的回答为基础。

$('#sliding_quote:visible').slideUp( function(){
    $('#trans_div').fadeOut( function(){
      close_quote_bar();
    });
});

thisclose_quote_bar()作为 的回调执行fadeOut

于 2013-02-06T23:46:49.357 回答
0

您的这行代码需要更改

$('#trans_div').animate({opacity: 0.0}).css('display','none').close_quote_bar;

你必须这样称呼它

$('#trans_div').animate({opacity: 0.0}).css('display','none');
close_quote_bar();

最后在你的动画完成动画之后触发你的 closequotebar,使用这个代码,注意一个 function() 在第三个参数中。

$('#trans_div').animate({opacity: 0.0}, 400, function(){
    $(this).css('display','none');
    close_quote_bar();
});

animate 和 slideUp 都支持添加 function() 块作为参数,因此您可以在动画完成后调用函数 http://api.jquery.com/animate/ 参见“完成”部分

于 2013-02-06T23:33:57.403 回答
0

你应该试试这个:

$('#trans_div').animate({opacity: 0.0}, 400, function(){
    $(this).css('display','none');
    close_quote_bar();
});
于 2013-02-06T23:34:13.027 回答