1

我正在尝试使用多个返回,但只是不断破坏代码。我尝试了一些示例,但找不到正确的组合。

如何将这两个返回语句合并为一个?

$(".bar").popover({
content: 
    function (){
        return $(this).data('dataObj').status;
        return $(this).data('dataObj').timeline;
    }
});
4

4 回答 4

11

采用

function (){
    return $(this).data('dataObj');
}

或者

function (){
    // return an array
    return [ $(this).data('dataObj').status, $(this).data('dataObj').timeline ]
}

或者

function (){
    // return a associative array
    return { "status": $(this).data('dataObj').status, "timeline": $(this).data('dataObj').timeline }
}

并处理调用者中的组件。

更新

content参数popover需要一个字符串作为参数,你可以这样做:

function (){
    return $(this).data('dataObj').status + " " + $(this).data('dataObj').timeline;
}
于 2013-03-14T14:02:01.930 回答
4

撇开这种特殊情况,插件需要某种类型的返回值(在这种情况下显然是一个字符串),你不能真的......返回语句终止函数。您需要做的是返回一个包含这两个值的对象(或数组) -

var status = $(this).data('dataObj').status;
var timeline = $(this).data('dataObj').timeline;
return [status,timeline];

或者

var status = $(this).data('dataObj').status;
var timeline = $(this).data('dataObj').timeline;
var returnObj = {'status':status, 'timeline':timeline};
return returnObj;
于 2013-03-14T14:02:38.543 回答
2

您可以返回包含这两项的 objext ir 数组

$(".bar").popover({
content: 
    function (){
        return 
        {
        status: $(this).data('dataObj').status;
        timeline: $(this).data('dataObj').timeline;
        }
    }
});
于 2013-03-14T14:04:21.880 回答
0

尝试返回一个以 .status 和 .timeline 作为元素的数组。好的 Lix 更快。

于 2013-03-14T14:04:01.413 回答