我在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>
答案 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 。
希望这有帮助。