重用一个jquery函数,为它提供一个php变量而不是html

时间:2013-12-27 06:00:35

标签: javascript php jquery css

基本上我有一个jquery脚本,它读取下拉列表中的值(国家列表,脚本查找隐藏的ISO值)并相应地使用字母作为精灵表上的坐标显示一个标记。

以下是代码:

// FLAGS
(function($) {
// size = flag size + spacing
var default_size = {
    w: 20,
    h: 15
};

function calcPos(letter, size) {
    return -(letter.toLowerCase().charCodeAt(0) - 97) * size;
}

$.fn.setFlagPosition = function(iso, size) {
    size || (size = default_size);

    return $(this).css('background-position',
        [calcPos(iso[1], size.w), 'px ', calcPos(iso[0], size.h), 'px'].join(''));
};

// USAGE:
$(function() {
    // on load:
    $('select[name="country"]').on('change', function(){
        $('.country i').setFlagPosition($(this).val())[0].nextSibling.nodeValue =      $(':selected', this).text();
    });
});


})(jQuery);

使用部分可能是这里的相关部分,但我为了完整性而包含了所有内容。

我现在想在网站的其他地方重用这个“精灵搜索和显示代码”,但不是依赖于下拉值,我希望它只是看一下php变量的值(例如$ country)witch将包含与下拉列表提供的iso代码相同的iso代码。

我不确定如何将php变量从php传递到jquery,以及如何使“使用”部分使用它。

所以我有var“$ country”,我希望脚本将其更改应用于名为“countryflag”的div。

顺便提一下,精灵在上面的脚本中作为背景加载到.country中,以防有人想知道它是如何获取的。

1 个答案:

答案 0 :(得分:0)

您可以将php变量作为

回显到javascript变量
<script>
var country_code = '<?php echo $country; ?>';
$(document).ready(function(){
    $('#div_id').setFlagPosition(country_code);
});
</script>

如果我做得对,你可以使用country_code。