jQuery在函数内调用用户定义的函数

时间:2013-02-06 23:28:28

标签: javascript jquery html5

我试图在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缺少方法错误!

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

5 个答案:

答案 0 :(得分:2)

我认为你想要这样的东西:

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

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

答案 1 :(得分: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()在第3个参数中。

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

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

答案 2 :(得分:0)

你应该试试这个:

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

答案 3 :(得分:0)

以@ laurencek的回答为基础。

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

这会将close_quote_bar()作为fadeOut的回调执行。

答案 4 :(得分:0)

事实证明这个函数正在调用,这不是范围或类似的问题。

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