-1

次のマークアップがあり、onclickイベントのajax部分をエスケープできません。コンテンツは動的に追加されます。

    <a class="_button" onclick="$('#add ul')
.append('<li><div class=\'error\'>
<img src=\'img/spinner.gif\' class=\'ajax_progress\' /><span></span></div></div>
<b class=\'bg\'>Prénom, Nom</b> <input type=\'text\'  onclick=\'$(this).autocomplete(autocomp_opt);\' 
class=\'_input _input_text\' style=\'width: 200px;height:24px\' value=\'\' /> 
<b class=\'bg\'>Montant</b> 
<input type=\'text\' id=\'\' 
class=\'_input _input_text _int\' 
style=\'height:24px\' value=\'\' /> € 
<input type=\'submit\' class=\'_submit\' cs_user_id=\'\'  
onclick=\'$.ajax({type:\'POST\',url:\'\'})\'  
value=\'Ajouter\'  /></li>')" 
style="float: left;margin-top: 0px;margin-left: 5px;">Ajouter un associé</a>

エラーを返す部分は次のとおりです。

onclick=\'$.ajax({type:\'POST\',url:\'\'})\'


syntax error
[Break On This Error]   

$.ajax({type:

だから私は一重引用符の中に一重引用符があるからだと思いますが、この場合は引用符をエスケープする方法はありますか?

4

2 に答える 2

3

読みにくい聖牛。自分でこれをしないでください。別のJSファイルを作成し、これを追加するだけです。

$("input[type=submit]").on('click', function () {
   $.ajax({type: "POST", url: ""});
});

別のJSファイルでは、必要なすべての引用符を使用できます。

于 2013-01-21T16:27:05.270 に答える
0

これらの LI を動的に追加する予定がある場合は、特定のセレクターのすべてのクリック イベントを処理するイベント リスナーをドキュメントに追加することをお勧めします。試してみる例を次に示します。

$(document).on("click", "._input ._input_text", function(e) {$(e.target).autocomplete(autocomp_opt);}); 

これは DOM 対応関数内に入れる必要があり、セレクターに一致するオブジェクトにクリック イベント ハンドラーが自動的に追加されます。

于 2013-01-21T16:47:18.053 に答える