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

jQuery Calling user defined function within function

本文关键字:函数 定义 用户 jQuery 调用      更新时间:2023-09-26

我试图在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方法错误时,什么都不会发生!

希望你们能给我指明正确的方向,我真的很难适应这个

我想你想要这样的东西:

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

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

你应该试试这个:

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

基于@laurencek的答案。

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

则执行作为CCD_ 2的回调的CCD_。

这行代码需要更改

$('#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,使用此代码,注意第三个参数中有一个函数()。

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

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

事实证明,函数被调用了,这与范围或类似的问题无关。

我有另一个在scroll(.woll)上执行的函数,它与该函数冲突,因此它的行为出乎意料,似乎没有执行。