2011-10-23 16 views
0

でパラメータとして変数を渡すことはできません:Javascriptが:私はこのコード(jqueryの)を持っているのonClick

function somefunction() { 

     $.ajax({ 
     type : 'POST', 
     url : 'post.php', 
     dataType : 'json', 

     success : function(data){ 

      var mess = ""; 
      var count = 0; 

      while (count < (data.length - 1)) 
      { 

       mess = mess + "<a href=# onclick=deletePerson("JohnDoe");return false;><img src=x.gif></a>" + data[count].name + "<br />"; 
       count++; 
      } 


      $('#mydiv').html(mess).fadeIn('fast'); 


     }, 
    }); 


} 
function deletePerson(arg) {...} 

私はこれを実行すると、すべてが正常に動作します。私はonclickのを(代わりに「JohnDoeさん」の)変数を渡したいとき はしかし、それは動作を停止します:

var myvar = "JohnDoe"; 
mess = mess + "<a href=# onclick=delete(myvar);return false;><img src=x.gif></a>" + data[count].name + "<br />"; 

私のエディタは私に語った:「未解決の変数またはタイプ」。

は通過パラメータに問題があったことはありませんが、それだけでは動作しません。このonClickの-事で...

誰もが私が間違ってやっている知っていますか?

ありがとうございます!

var myvar = data[count].name; 

それが動作を停止...任意の考えを:

EDIT:(!ありがとう)私が入れたときにヨセフの投稿は、しかし、JohnDoeという問題を修正しますか?あなたは

myvar = "JohnDoe"; 
mess = mess + "<a href=# onclick=delete('"+myvar+"');return false;><img src=x.gif></a>" + data[count].name + "<br />"; 
+0

データ変数には何があるのか​​を教えてください。 – Dev

+0

このようにHTMLを作成してイベントハンドラをバインドすると、エラーが発生しやすくなり、スタイルが悪くなります。これを行うにはjQueryの使用を検討してください。 –

+0

これはイベントをバインドする非常に悪い方法です。 jqueryを使用している場合は、* $( '').click(...)... ' – zzzzBov

答えて

1

は、あなたがあなたの関数の名前を変更する必要があり、JavaScriptで予約語です。

... 
mess = mess + "<a href=# onclick=deletePerson('"+myvar+"');return false;><img src=x.gif></a>" + data[count].name + "<br />"; 
... 
function deletePerson(name) {...} 
+2

引数の前後に引用符がありません。 –

+0

また、 "var myvar"のvarをオフにして、グローバルになるようにして、どこで宣言しているのかわからないようにしてください。 – Mike

+0

@FelixKling ha!良いキャッチ!私はそれを逃した。 :P fixed –

0

deleteに変数を連結する必要が

+0

私の悪い、機能は実際に削除されていないが、私の母国語で "削除する"の翻訳。 stackoverflowのためにそれを変更しましたが、reserved-keyword-thingについては考えていませんでした。これを指摘してくれてありがとう、問題はまだ固定されていません... – binoculars

+0

@binocularsデータが配列であると確信していますか?それをチェックするためにconsole.log()を実行します。おそらく文字列です。あるいは、配列要素に 'name'プロパティがないかもしれません。また、現在の状態と一致するように、あなたの投稿のコードを更新する必要があります。 – deviousdodo

+0

'data [count] .name'というwhileループがうまく機能するので、配列であり、存在すると確信しています...(私のコードを更新してください) – binoculars

関連する問題