jquery - 简单的 jQuery 回调在 IE 中中断

标签 jquery internet-explorer callback undefined

我有一些这样的功能:

$(this).find('.subnav').fadeIn(200, buttonHide );

现在,在本例中,buttonHide 是我在其他地方声明的函数。一旦 200ms fadeIn 完成,我想调用该函数。

太棒了。适用于 FF 和 Safari。但在 IE 中,它会返回未定义的错误。事实上,我在 Ariel Flesler 的 scrollTo 中使用 onAfter 函数时遇到了同样的问题......这会带来什么?

我需要做什么才能使 IE 能够运行这些回调?

编辑:这是包含该函数的代码。这个页面是在上面的代码片段之后调用的...我有点菜鸟;那是问题吗?无论如何,在所有内容加载完成之前,不会运行任何内容。

jQuery(function( $ ){

    /* BEGIN MENU SCROLLER INITIALIZATION */

        // Resets pane
    $('.menuClip').scrollTo( 0 );

    // scrolls to active item to 
    $('body:not(.archive) .menuClip').stop().scrollTo( $('.current_page_item') );

    $('.menuDown').click(function(){
        $('.menuClip').stop().scrollTo( '+=70px', 800, {
            onAfter:function(){
                buttonHide();
            },
        });
    });
    $('.menuUp').click(function(){
        $('.menuClip').stop().scrollTo( '-=70px', 800, {
            onAfter:function(){
                buttonHide();
            },
        });
    });

/* END MENU SCROLLER INITIALIZATION */  

});

$(buttonHide = function() {
    setTimeout(function(){
        var elemM = $(document).find('.menuClip:visible');
        if (elemM[0].scrollHeight - elemM.scrollTop() == elemM.outerHeight()) {
            $('.menuDown').animate({"opacity":"0"}, 200);
        } else {
            $('.menuDown').animate({"opacity":"1"}, 200);
        }

        if (elemM.scrollTop() == 0) {
            $('.menuUp').animate({"opacity":"0"}, 200);
        } else {
            $('.menuUp').animate({"opacity":"1"}, 200);
        }
    }, 200);
});

最佳答案

我注意到一件事:回调后的逗号会破坏 IE:

$('#move_this_up').click(function(){
    $('#content').stop().scrollTo( '-=270', 1000,
        { onAfter:function(){
            inactiveContentStates();
        }, // COMMA BAD!!!!
    });
});

在调用函数之前声明函数并删除逗号会有所帮助。

希望这对其他人有用!

关于jquery - 简单的 jQuery 回调在 IE 中中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2366410/

相关文章:

javascript - QuirksMode 和 JavaScript 实现

javascript - 返回上一页时变量未定义

python - 如何交互地更改动画参数

javascript - bx slider : how to disable slide show when only one image is present

jquery - 如何删除 anchor 或使用 jQuery 在空白 ul li 中添加它们

php - 仅在 IE 8 中重叠元素

iOS:存储和触发回调 block

javascript - jquery on 不会对由clone()添加的元素使用react

javascript - 这个setTimeout如何工作?

internet-explorer - 悬停时图像交换,文本链接在顶部