2016-10-10 11 views
-5

動的変数を動的javascript関数パラメータとして使用したいと考えています。しかし、定義されていない変数としてエラーを出しています。jQuery - 変数を関数パラメータとして使用する

$.ajax({ 
    url: 'get_category_list.php', 
    dataType: 'JSON', 
    success: function (data) { 
     var i = 1; 
     $.each(data, function() { 
      var id = this.id; 
      //console.log(id); 
      var edit = "<img src='../../dist/img/icon/edit.png' " + 
      "style='border: 1px solid #999637; " + 
      "border-radius: 2px' " + 
      "title='Edit' " + 
      "onclick='show_edit_form(id)'>"; 
      catTable.row.add([ 
       i++, 
       this.name, 
       this.level, 
       this.create_date, 
       edit 
      ]).draw(); 
     }); 
    } 
}); 

正確な問題は何ですか?

+3

問題が何であり、どのような行があるのか​​を少なくとも教えてもらえば、どこから始めたらいいのでしょうか? – adeneo

+1

どの変数?どちらのエラー? – Bergi

+0

正確な問題はあなたの問題が明確でないことです。 – Weedoze

答えて

1

show_edit_form機能でエラーが発生したようです。あなたは、それは以下のコードで

var edit = "<img src='../../dist/img/icon/edit.png' " + 
      ... 
      "onclick='show_edit_form(" + this.id + ")'>"; 
0

だあなたのケアで、そこに何かを渡す必要があり、あなたはshow_edit_form()の引数としてeditを渡さ:

var edit = "<img src='../../dist/img/icon/edit.png' " + 
      "style='border: 1px solid #999637; " + 
      "border-radius: 2px' " + 
      "title='Edit' " + 
      "onclick='show_edit_form(edit)'>"; 
            ^^^^ 

おそらく、あなたの意図は、引数として要素自体を渡すことでした。しかし、あなたのコードは実行されません、それはedit変数にインラインでアクセスすることさえできませんでした。最も簡単な解決策は、で、引数フィールドを空白のままにします。クリックイベントを処理するときに既にthisを使用してアクセスできるためです。

一方、他の人がコメントに指摘しているように、jQuery's .click()メソッドを使用する方が良いです。


関連する問題