глобальная переменная jQuery без конфликта - PullRequest
0 голосов
/ 03 декабря 2011

Я знаю, что для кого-то это будет очень просто, но я потратил 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);
})

Смотреть оригинальный вопрос здесь

Ответы [ 2 ]

4 голосов
/ 03 декабря 2011

Проблема в том, что вы используете setInterval неправильно. Никогда передавать строку, но всегда передавать функцию - передача строки так же плоха, как использование eval:

setInterval(swapImages, 500);

Тогда вам не нужны глобальные переменные / функции.

В случае, если вам нужно передать какие-либо аргументы функции, вы должны обернуть ее в анонимную функцию:

setInterval(function() { /* your code/function call */ }, 500);
0 голосов
/ 03 декабря 2011
setInterval(function(){swapImages()}, 500);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...