2015-07-08 3 views
0

Я пытаюсь включить Curry (http://curry.netyou.co.il/) с API-интерфейсом js-cookie (https://github.com/js-cookie/js-cookie), но я попал в ловушку, и ни один из моих экспериментов не работал до сих пор. Я смог сохранить как имя валюты, так и курс в отдельные значения cookie, и прочитать их обратно на страницу, но я не могу понять, как повторно инициализировать функцию curry.Как использовать Curry с js-cookie

Опция «base», похоже, не принимает переменную, и я не разбираюсь в js/jQuery, чтобы понять, как сказать curry, чтобы использовать переменную cookie другим способом. Я смог использовать jQuery для чтения имени валюты из файла cookie и изменения «option» на «selected», но сам он не обновляет цены, и я также не могу понять, как связать re -инициализация карри после этой функции. Мой код выглядит следующим образом:

var savedRate = Cookies.get('site_rate'); 
var savedCurrency = Cookies.get('site_currency'); 

$('.currency-list').curry({ 
    target: '.ov-property-price', 
    base: 'AED', 
    customCurrency: { 
     'AED': 1, 
     'EUR': 0.25, 
     'GBP': 0.17,    
     'AUD': 0.36, 
     'CHF': 0.26, 
     'CAD': 0.34, 
     'INR': 17.25, 
     'IRR': 8015.36 
    }, 
    symbols: { 
     'AED': 'AED ', 
     'EUR': '€', 
     'GBP': '₤',   
     'AUD': 'AU$ ', 
     'CHF': 'CHF ', 
     'CAD': 'CA$', 
     'INR': '₹', 
     'IRR': '﷼' 
    } 
}); 

$('.currency-list').change(function(){ 
    var selected = $(this).find(':selected'), // get selected currency 
    rate = selected.data('rate'), // get currency rate 
    currency = selected.val(); // get currency name 

    Cookies.set('site_currency', currency); 
    Cookies.set('site_rate', rate); 
}); 

$('.currency-list option[value="' + savedCurrency + '"]').attr('selected', 'selected'); 

Извините задать такой простой вопрос, но я уверен, что объяснение принесет пользу многих других людей с помощью этого плагина.

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

+0

Что 'TypeOf selected.data ('скорость')' возвращает? Имейте в виду, что 'Cookies.set' 2.0.2 принимает только значения Object Literals и Arrays в значении, как описано. Остальное должно быть все Струны. –

+0

В настоящее время он возвращает 'number'. Поэтому я не могу использовать параметр 'savedCurrency' в базовом'? Оба значения cookie, похоже, сохраняют, читают и печатают хорошо, я просто не знаю, как передать его функции карри. –

ответ

0

Код, приведенный ниже, позволит вам настроить карри с сохраненной валютой или стандартной стартовой валютой.

// Setup defaults if cookie returns nothing 
 
var savedRate = Cookies.get('site_rate') || 1; 
 
var savedCurrency = Cookies.get('site_currency') || 'AED'; 
 

 
// Save custom currency list 
 
var customCurrency = { 
 
     'AED': 1, 
 
     'EUR': 0.25, 
 
     'GBP': 0.17,    
 
     'AUD': 0.36, 
 
     'CHF': 0.26, 
 
     'CAD': 0.34, 
 
     'INR': 17.25, 
 
     'IRR': 8015.36 
 
    }; 
 

 
/* Set rate for saved currency 
 
* If saved rate is the same as in the 
 
* customCurrency list there is no need for this stage */ 
 
customCurrency[savedCurrency] = savedRate; 
 

 
// Setup curry with your saved rates 
 
$('.currency-list').curry({ 
 
    target: '.ov-property-price', 
 
    base: savedRate, 
 
    customCurrency: customCurrency, 
 
    symbols: { 
 
     'AED': 'AED ', 
 
     'EUR': '€', 
 
     'GBP': '₤',   
 
     'AUD': 'AU$ ', 
 
     'CHF': 'CHF ', 
 
     'CAD': 'CA$', 
 
     'INR': '₹', 
 
     'IRR': '﷼' 
 
    } 
 
});

Смежные вопросы