全局jQuery变量没有冲突

时间:2011-12-03 11:15:11

标签: javascript jquery wordpress

我知道这对某些人来说非常简单,但我只花了2个小时试图解决这个问题。

如何在jquery中使用函数没有冲突。我不断得到Uncaught ReferenceError: swapImages is not defined (anonymous function)如果我不使用jquery没有冲突,代码工作正常。 (我必须使用没有冲突,因为它内置于WordPress中)

jQuery(document).ready(function ($) {
    function swapImages() {
        var $active = $('#myGallery .active');
        var $next = ($('#myGallery .active').next().length > 0) ? $('#myGallery .active').next() : $('#myGallery img:first');
        $active.show(function () {
            $active.show().removeClass('active');
            $next.show().addClass('active');
        });
    }
    // Run our swapImages() function every 5secs
    setInterval('swapImages()', 500);
})

See the original question here

2 个答案:

答案 0 :(得分:4)

问题是您不正确地使用setInterval。 从不传递字符串但始终传递函数 - 传递字符串与使用eval一样糟糕:

setInterval(swapImages, 500);

然后你不需要任何全局变量/函数。

如果你需要将任何参数传递给函数,你可以将它包装在一个匿名函数中:

setInterval(function() { /* your code/function call */ }, 500);

答案 1 :(得分:0)

setInterval(function(){swapImages()}, 500);