Я получаю следующую ошибку 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.
Большое спасибо
Переместите объявление setCurrency
за пределы документа.
Как показано в этом примере, функции, объявленные внутри готового документа, не найдены ссылками onclick.
$(document).ready(function () {
function test1(x) {
// I'm not working
}
});
function test2(y) {
// I am working!
console.log(y);
}
$('#example-button).on('click', function(){ setCurrency('the_currency_id'); });
Документы на это здесь .