2012-01-20 10 views
0

として読まれるべきであるときのonclick関数でパラメータを渡すことを変数として読み込まれは私の問題である:それはここでは、文字列

私はこのようなonclickの機能を動的にボタンを作成しています:

$("#test).html('<input type="button" value="Close" onclick="remove('+param1+','+param2+');" />'); 

パラメータは正しく読み込まれていますが、関数はトリガーではありません。このエラーメッセージが表示されます。 bobがparam1の文字列値である場合、「bobが定義されていません」。

明らかに、bobは文字列として読み込む必要があるときに変数として読み込まれるようですが、理由はわかりません。

ありがとうございました!

+0

ようこそ。質問や回答の作成については、ツールボックスを使用してコードを正しくフォーマットします。それ以外の場合は表示されません。詳細については、ツールボックスの[?]を使用してください。また、編集ゾーンの下の質問のプレビューをチェックして、どのように見えるかを確認します。 –

答えて

0

私はここで重要ではJavaScriptクロージャであるあなたにこの

<script type="text/javascript"> 
//<![CDATA[ 
    var i = 0; 
    $(function() { 
     $("#lnkAdder").click(function() { 
      // appending new item 
      $("#Container").append(
       $("<a>").attr({ "href": "javascript:;" }).text("Click me").click(function() { 
        var data = ++i; 
        alert("I'm clicked, I'm number " + data); 
       }) 
      ); 
     }); 
    }); 
//]]> 
</script> 
<a href="javascript:;" id="lnkAdder">Add item</a> 
<div id="Container"></div> 

を提案することができます。 ご覧のとおり、lnkAdderというリンクがあります。新しい項目をコンテナに追加するのは担当者の責任です。クリックすると、新しい項目がコンテナに追加されます。 jQuery APIを使用して新しい要素を作成し、属性を追加してイベントリスナーを追加します。イベントリスナー本体では、値を内部変数にコピーします。彼らは適切にそれを使用します。だから、

'onclick="remove(\'foo\', \'bar\');"' 

'onclick="remove(foo, bar);"' 

あなたはおそらく、それは次のようになりたい:

'onclick="remove('+param1+','+param2+');"' 

は最後に次のようになります。右ここにこの文字列があるためだ

5

これに変更してください:

'onclick="remove(\''+param1+'\', \''+param2+'\');"' 

あなたもこれを行うことができます:

$("#test").html('<input type="button" value="Close" />').find('input[type=button]').click(function() { 
    remove(param1, param2); 
}); 

編集を:私はまた、あなたの$から1を「欠落していたことに気づい() - 呼び出し:$("#test)$("#test")でなければなりません。

関連する問題