在fQuery中将func作为background-image url参数传递

时间:2014-04-23 13:31:58

标签: javascript jquery css

我可以将函数传递给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;
        }
    }

3 个答案:

答案 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)

我自己发现了这个问题,是一个额外的大括号......