我可以将函数传递给jQuery中的background-image url参数吗?
像这样......
jQuery('<span>').css('background-image', 'url(' + check_file_type(value.Name) + ')');
该函数以正确的格式返回url地址,我假设我只是没有正确调用它。
function get_extension(filename) {
return filename.split('.').pop().toLowerCase();
}
function check_file_type(file) {
switch(get_extension(file)) {
//if .jpg/.gif/.png do something
case 'jpg': case 'gif': case 'png':
return '{!URLFOR($Resource.images, 'images/doctype_image.png')}';
break;
//if .zip/.rar do something else
case 'zip': case 'rar':
return '{!URLFOR($Resource.images, 'images/doctype_zip.png')}';
break;
//if .pdf do something else
case 'pdf': case 'pptx':
return '{!URLFOR($Resource.images, 'images/doctype_pdf.png')}';
break;
}
}
答案 0 :(得分:2)
你可以。 该函数应该返回一个字符串和你的好。
答案 1 :(得分:1)
这是可能的。该函数应返回一个字符串。 我还看到你正在调用的Jquery创建了一个新元素。这是你想要达到的目标吗?对于我的例子,我只假设一个现有的span元素。
function init() {
var value = {};
value.name = "Hello";
$('span').css('background-image', 'url(' + check_file_type(value.name) + ')');
}
function check_file_type(name) {
return "http://" + name + ".jpg";
}
init();
一个小JSFiddle作为工作示例。请注意,我的示例中的check_file_type函数并未真正检查任何文件类型。
答案 2 :(得分:0)
我自己发现了这个问题,是一个额外的大括号......