0

两个功能:

第一:关闭一个固定在页面底部的stickyFooter onclick of the cross。

jQuery:

jQuery(document).ready(function() {
 function closeSticky() {
    jQuery('.stickyFooter').hide();
      jQuery.cookie('stickyNewsClosed', 'yup', {
        path: '/',
        expires: 30
      });
    }
});

第二:此功能淡入/淡出两个div,并在输入区域有焦点时停止。现在需要发生的是,当stickyfooter 关闭时,它需要在这个单独的函数中调用clearTimeout:

jQuery(document).ready(function () {

    // check if both divs are visible
    if ((jQuery('.footerPromoBannerWrapper').is(':visible')) && (jQuery('.stickyFooter').is(':visible'))) {

        // Local variable for cancel of fades
        var stickyTimeout;

        // Set sticky as display:none
        jQuery('.stickyFooter').hide();

        // Switch in
        window.switchIn = function () {
            jQuery('.footerPromoBannerWrapper').fadeToggle(function () {
                jQuery('.stickyFooter').fadeToggle(function () {
                    stickyTimeout = setTimeout(function () {
                        window.switchOut();
                    }, 3000);
                });
            });
        };

        // Switch out
        window.switchOut = function () {
            jQuery('.stickyFooter').fadeToggle(function () {
                jQuery('.footerPromoBannerWrapper').fadeToggle(function () {
                    stickyTimeout = setTimeout(function () {
                        window.switchIn();
                    }, 3000);
                });
            });
        };

        stickyTimeout = setTimeout(function () {
            window.switchIn();
        }, 5000);

        jQuery('input#emailsignup').focus(function() {
            clearTimeout(stickyTimeout);

        });

    } // End of both divs are visible if statement
});

问题:

如何将两者结合起来,以便将 timeOut 功能作为粘性页脚关闭的一部分?像这样的东西?

第一次功能修正:

function closeSticky() {
jQuery('.stickyFooter').hide();
jQuery.cookie('stickyNewsClosed', 'yup', {
path: '/',
expires: 30
});
stopAnimation();
}

第二个功能修正:

function stopAnimation() {
jQuery('input#emailsignup').focus(function() {
clearTimeout(stickyTimeout);
});
} // End stopAnimation function
console.log(function stopAnimation());
4

1 回答 1

1

您在函数中有 jQuery,所以我建议将 2 个函数移动到 dom 就绪范围内。您的 cleartimeout 可能正在调用 udefined。

于 2014-07-25T13:53:58.490 回答