由window.setInterval()调用的jQuery .toggle()无法正常工作

时间:2010-05-12 07:00:40

标签: javascript jquery

我尝试使用以下代码每5秒在两个徽标之间切换:

window.setInterval(
    function () {
        //breakpoint 1
        $("#logo").toggle(
            function() {
                //breakpoint 2
                $(this).attr('src', '/Images/logo1.png');
            },
            function() {
                //breakpoint 3
                $(this).attr('src', '/Images/logo2.png');
            }
        );
    },
    5000
);

我可以进行简单的切换工作,但是当我在window.setInterval()中引入切换时,切换的两个处理程序将不会触发。

我在上面代码中注释的正下方的行上设置了断点。断点1每5秒击中一次。但是,Breakpoint 2和3从未命中过。

为什么切换功能的处理程序都没有触发?

2 个答案:

答案 0 :(得分:6)

据我所知,

toggle()需要click ....

所以,

   $("#logo").toggle(
        function() {
            //breakpoint 2
            $(this).attr('src', '/Images/logo1.png');
        },
        function() {
            //breakpoint 3
            $(this).attr('src', '/Images/logo2.png');
        }
    );

window.setInterval(
    function () {        
        $("#logo").trigger('click');
    },
    5000
);

答案 1 :(得分:0)

听起来jQuery没有找到#logo元素。

HTML标记如何?

您可以尝试这样来查看jQuery是否找到了#logo元素:

//Firebug way
console.log($('#logo').length)

//alert way
alert($('#logo').length)

..弗雷德里克