0

私のコードには、他の div の束を 1 つの親 div に追加する場所があります。これらの各 div 内には、クリックされたときに 2 つの関数を呼び出す必要がある (ボタンとして使用される) 画像があります。これは通常行われます:

 onclick = "alert('hi'); addfriend(username);";

しかし、それらを追加しているので、追加するインラインコードで onclick 関数を実行しています。ここを参照してください。

.append("<div class = 'scrollable'; style = 'width:100%; height: 30%; text-align: left; background-color: white; border: 1px solid gray; line-height: 0%' >" +
     "<div style = 'float: left; margin-left: 5%'><p style = ' font-size:" +fontSize+"'>" + username + "</p><p style = 'color: gray; font-size:" +subtext+"'>" +wholeName+"</p></div>    **<img style = 'float: right; padding-top: 3%; padding-right: 3%; right: 0; height: 80%;' onclick = 'addFriend('"+username+"'); alert('hi')'  src = 'addfriend.png'>**</div>");

混乱しているように見え、インラインを使用すべきではないことはわかっていますが、可能であれば、それが私がやりたいことです。

とにかく、インラインなので、両方の onclick 関数を " " ではなく ' ' でラップしようとしましたが、何らかの理由で両方の関数を読み取れません。修正方法はありますか?

4

3 に答える 3

0

(.append() スニペットに基づいて) 既に jQuery を使用しているように見えるため、その関数をインライン コードから抽象化することを検討することをお勧めします。したがって、次のような結果になる可能性があります。

$('img').click( function() 
{
    //Not sure where you're getting the username from. $(this).parent()... for all we know?
    var username = $('whatever').val(); 
    addFriend(username);
    alert(username);
}

これにより、すべての img タグにコードを追加する必要がなくなります。

それが役立つことを願っています!

于 2013-10-25T00:04:19.767 に答える
0

これを試して..

2 つの引数を受け入れる 1 つの関数を作成し、その 2 つの関数をその中に配置します。

function dummy(uname,toalert){
  addFriend(uname);
  alert(toalert);
}

そしてあなたのインラインで

onclick = 'dummy(\'"+username+"\',\'hi\')'

またはエスケープしようとする '

 onclick = 'addFriend(\'"+username+"\'); alert(\'hi\')'
于 2013-10-24T23:52:32.327 に答える
0

'文字列内のand"文字をバックスラッシュでエスケープするだけで\'\"それぞれ and になります。インライン属性イベント ハンドラーからの移行を検討することもできますが、それらは保守が困難です。

于 2013-10-24T23:53:20.493 に答える