2016-07-01 7 views
1

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> 
+0

グローバル関数の場合は、 'window'オブジェクトのプロパティであるため、' window [selectedFunction](item_id); 'を実行できます。 –

+0

文字列の代わりに関数を渡すのはなぜですか? – walkerrandophsmith

+0

私はこれが本質的にそれを行う正しい方法であることを知りました。バーマーの答えを見てください。また、関数の結果をオブジェクトの.htmlプロパティに返すのではなく、関数内の適切なオブジェクトの内容を更新します。 – user1955162

答えて

2

関数名は文字列ではなく変数であり、引用符で囲むべきではありません。

+0

私はちょうど私がこのすべてについて間違って行ったことを実感し、あなたは正しいです!この関数は、TDの内容を設定する必要があります。ありがとう! – user1955162

0

変数selectedFunctionが文字列であります見た目はThis postです。

これが役に立ちます。

関連する問題