HTMLでタブをクリックしたときに呼び出される関数があります。私は、そのタブのonClick()
アクション内の各タブに固有の関数名を渡したいと思います。そして、特定の関数がタブスペースのHTMLコンテンツに移ります。これまでの私のコード:jQueryを使用してパラメータで実行する関数の名前を渡します。
私はそれを実行しようとすると、私が手:
selectedFunctionが
機能ではなく、右のthats! selectedFunction
は関数ではなく、関数の名前を含む変数です。その変数に名前が含まれている関数をどのように呼び出すのですか?私はwarehouse_availabilityでテストしています。
はこちらをご覧ください:
window[selectedFunction](item_id);
テイク:だから
window["function_name"](arguments);
あなたはそれがされる場合は:あなたはとしてそれを呼び出す必要がありますので
<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>
グローバル関数の場合は、 'window'オブジェクトのプロパティであるため、' window [selectedFunction](item_id); 'を実行できます。 –
文字列の代わりに関数を渡すのはなぜですか? – walkerrandophsmith
私はこれが本質的にそれを行う正しい方法であることを知りました。バーマーの答えを見てください。また、関数の結果をオブジェクトの.htmlプロパティに返すのではなく、関数内の適切なオブジェクトの内容を更新します。 – user1955162