重新使用jquery函数,为其提供php变量而不是html



基本上,我有一个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)的值,该变量将包含与下拉列表提供的代码相同的iso代码。

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

因此,我有var"$country",我希望脚本将其更改应用于名为"countryflag"的div。

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

您可以将php变量作为返回到javascript变量

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

如果我做对了,你可以这样使用country_code。

最新更新