我正在实现一些 javascript 函数,当我将它们放在一个单独的 js 文件中时,我得到了这个错误:未定义的变量:“函数名”。当我将它们内联在页面中间时,它们可以正常工作。什么会导致这样的问题?您可以在下面找到一个示例。
function cssColorToHex(colorStr) {
var hex = '#';
$.each(colorStr.substring(4).split(','), function(i, str) {
var h = ($.trim(str.replace(')',''))*1).toString(16);
hex += (h.length == 1) ? "0" + h : h;
});
return hex;
}
function hexToRgb(hex) {
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
我将它们放在以下函数中:
function colors_used() {
var colors_used = [];
$('.colorpicker').each(function() {
var box = $(this).closest('.colorbox');
var preset_color = $(box).css('background-color');
preset_color = cssColorToHex(preset_color);....
因此,当我将前两个函数放在单独的文件中时,我得到的错误是:
Uncaught exception: ReferenceError: Undefined variable: cssColorToHex Event thread: DOMContentLoaded
UPD: * FIXED *: 我在 js 文件中交换了函数的顺序,以便函数function hexToRgb(hex)
先行cssColorToHex(colorStr)
后行,然后它开始工作。诡异的。谢谢大家。