如何使用curry与js-cookie

时间:2015-07-08 13:48:44

标签: javascript jquery cookies curry-currency-converter

我试图将Curry(http://curry.netyou.co.il/)与js-cookie API(https://github.com/js-cookie/js-cookie)合并,但我遇到了障碍,我的实验都没有这样做远。我已经能够将货币名称和费率存储到单独的cookie值中,并将它们读回页面,但我无法弄清楚如何重新初始化咖喱功能。

选项" base"似乎不接受变量,我不熟悉js / jQuery足以弄清楚如何告诉curry以不同的方式使用cookie变量。我已经能够使用jQuery从cookie中读取货币名称并更改'选项'要选择',但这本身并不能更新价格,而且我也无法弄清楚如何在该功能之后对咖喱进行重新初始化。我的代码如下:

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');

很抱歉提出这样一个基本问题,但我确信解释会让使用此插件的其他人受益。

非常感谢。

1 个答案:

答案 0 :(得分: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': '﷼'
    }
});