Uncaught TypeError: Свойство 'setCurrency' объекта [object Object] не является функцией

0

Я получаю следующую ошибку jquery: "Uncaught TypeError: свойство" setCurrency "объекта [object Object] не является функцией," которую я не могу опустить. Ошибка возникает при попытке изменить валюту: http://aaronjpitts.com/temp/petiteannee

Функция setCurrency определяется как:

jQuery(document).ready(function ($) {

    function setCurrency(id_currency)
    {
        $.ajax({
            type: 'POST',
            headers: { "cache-control": "no-cache" },
            url: baseDir + 'index.php' + '?rand=' + new Date().getTime(),
            data: 'controller=change-currency&id_currency='+ parseInt(id_currency),
            success: function(msg)
            {
                location.reload(true);
            }
        });
    }

});

Мне пришлось перенести некоторые из моих функций в функцию jQuery noconflict, чтобы получить работу jQuery (document).ready(function ($)

Я уверен, что это как-то связано с ошибкой. Может ли кто-нибудь увидеть, как генерируется эта ошибка? Сайт построен на prestashop.

Большое спасибо

  • 0
    Нам нужно увидеть ваш код для диагностики проблемы.
  • 0
    Где определяется функция setCurrency?
Показать ещё 1 комментарий
Теги:
prestashop
conflict

1 ответ

1
Лучший ответ

Переместите объявление setCurrency за пределы документа.

Как показано в этом примере, функции, объявленные внутри готового документа, не найдены ссылками onclick.

$(document).ready(function () {
    function test1(x) {
        // I'm not working
    }

});

function test2(y) {
    // I am working!
    console.log(y);

}
  • 0
    Это создаст глобальную переменную и загрязнит глобальное пространство имен, особенно если вам придется делать это много раз. Этого можно избежать, назначив функции кнопкам с помощью обработчиков событий: $('#example-button).on('click', function(){ setCurrency('the_currency_id'); }); Документы на это здесь .
  • 0
    Конечно, ваш дизайн лучше, но ОП представляет код, в котором он использовал onclick.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню