使用jQuery传递在参数中执行的函数名称

时间:2016-07-01 22:18:01

标签: javascript jquery function variables

我在HTML中单击选项卡时调用了一个函数。我想在该选项卡的onClick()操作中为每个选项卡传递一个唯一的函数名称,并且特定函数会填充选项卡空间的HTML内容。到目前为止我的代码:

当我尝试执行它时,我得到:

  

selectedFunction不是函数

那是对的! selectedFunction不是函数,它是包含函数名称的变量。如何调用该变量中包含名称的函数?我正在使用warehouse_availability进行测试。

见这里:

<html>
<head>
<script>
function form_selectTab(selectedTab, selectedFunction, item_id){
    $('.form_tab').css('background-color', 'rgb(222,222,222)');
    $(selectedTab).css('background-color', 'white');
    $('#form_tabSpace').html(selectedFunction(item_id));
}
function warehouse_availability(item_id){
    return('This is warehouse availability for ' + item_id);
}
</script>
</head>
<body>
<div>
    <table style="width: 100%; border-collapse: collapse;" cellspacing="0" cellpadding="0">
        <tr>
            <td class=form_tab onclick="form_selectTab(this, 'warehouse_availability', 'Items Name');">
                Warehouse availability
            </td>
            <td class=form_tab onclick="form_selectTab(this, 'manufacturer_data', 'Items Name');">
                Manufacturer data
            </td>
            <td class=form_tab onclick="form_selectTab(this, 'replacement_skus', 'Items Name');">
                Replacement SKUs
            </td>
            <td class=form_tab onclick="form_selectTab(this, 'similar_items_in_stock', 'Items Name');">
                Similar items in stock
            </td>
            <td class=form_tab onclick="form_selectTab(this, 'pricing', 'Items Name');">
                Pricing
            </td>
            <td class=form_tab onclick="form_selectTab(this, 'special_quotes', 'Items Name');">
                Special Quotes
            </td>
        </tr>
        <tr>
            <td colspan=6 id="form_tabSpace">
            </td>
    </table>
</div>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

函数名称是变量,而不是字符串,它们不应该放在引号中。

        <td class=form_tab onclick="form_selectTab(this, warehouse_availability, 'Items Name');">

答案 1 :(得分:0)

变量selectedFunction是一个字符串,因此您应将其称为:

window["function_name"](arguments);

所以在你的情况下它将是:

window[selectedFunction](item_id);

查看 This post

希望这有帮助。