2012-01-12 35 views
0

私はphonegapとjquery mobileを使用してモバイルアプリケーションを開発しています。私は変数を別の関数に渡さなければならないこの関数を持っています。私はdothis(引数)の機能を持っていますが、私は、変数「URL」に入れたとき、それは呼び出されません引数を指定したJavascript関数の呼び出し

$.each(response.records, function(i, contact) { 
     var url = contact.Id; 
     var newLi = $("<li><a href='javascript:dothis("+url+")'>" + (i+1) + " - " + contact.Name + " - Company "+contact.Company+"</a></li>"); 
      ul.append(newLi);} 

:それはこのような何かを行きます。引数を削除すると、それが機能します。助けてください!

答えて

1

あなたはJavaScriptで引用符でURLを配置する必要があります。

var newLi = $("<li><a href=\"javascript:dothis('" + 
     url + 
     "')\">" + 
     (i+1) + " - " + contact.Name + 
     " - Company " + contact.Company + "</a></li>"); 

あなたかもしれないそれはどんな困難な文字が含まれている場合、あなたのjavascriptが中断されません、ようにURLをエスケープ検討する必要があります。

+0

ありがとうのcraigmj:

$.find('a').bind('click', function() { dothis(url); }); 

は、ここではjavascript:プロトコルを使用するように悪い習慣だ理由について、いくつかの詳細情報です。それはあまりにもうまくいく。 – user790514

3

属性でjavascript:プロトコルを使用することは間違いありません。イベントをリンクにバインドしてそれに応じて対応する方がはるかに優れています。このような

挿入何かあなたがULにnewLiを追加した後: Why is it bad practice to use links with the javascript: "protocol"?

+0

フィリップウォルトンに感謝します。私は1990年代のことに行くと思っていた:( – user790514

関連する問題