2017-01-19 6 views
1

に変数として私はは、Element ID機能

function updateElements(tab_name) { 
    var tab_name = tab_name; 

    // ... 

    $("#table-responsive-" + tab_name).load(url, function(resp, status, xhr, tab_name) { 
     $('[data-toggle="tooltip-pass"]').tooltip({ 'placement': 'bottom' }); 
     $('[data-toggle="tooltip"]').tooltip({ 'placement': 'top'}); 
     $('[data-toggle="popover"]').popover({ 
      trigger: 'hover', 
      'placement': 'top', 
      'container': 'body' 
     }); 

     $('#' + tab_name).DataTable({ 
      "paging": false, 
      "columnDefs": [{ 
       "orderable": false, 
       "targets": 4 
      }] 
     }); 
    }); 
} 

"#table-responsive-" + tab_nameが正常に動作しますが、$('#' + tab_name).DataTable()ない関数に渡されたID名を持つ要素の影響を取ると仮定jQueryのコードを持っています。私が逃した何かの手がかり?

+2

$( '#' + tab_name).DataTable()は、関数の変数を使用しています... propably is null – AthMav

+2

'var tab_name = tab_name;'を実行する理由はありません。パラメータ変数は自動的にローカル変数ですので、再度宣言する必要はありません。 – Barmar

答えて

1

、「完全な」関数内だけ3.あなたの四番目のパラメータは、このようにundefinedなっ渡された - あなたは、この関数のパラメータをセレクタを元tab_nameを影にしましたので、動作しません。

$("#table-responsive-"+tab_name).load(url, function(resp, status, xhr, tab_name) { 
//tab_name was never passed in, remove it from args list 
}); 

これは$.load():のドキュメントから '完了' 関数のthe signatureです:

完全 タイプ:Functiをon(String responseText、String textStatus、jqXHR jqXHR)要求 が完了すると実行されるコールバック関数。

0

tab_nameは、グローバル変数として、load関数の引数として渡しています。したがって、引数がグローバルtab_name変数の値を置き換えているように見えます。それは私が見つけることができるすべてです。引数名を置き換えてみてください。 $.load()のためのコールバック関数が4つのパラメータが渡されていません

+0

コールバック関数の 'tab_name'引数を取り出してください。 3つの引数しか得られません。 – Barmar

関連する問題