0

我的代码中有一个位置,将一堆其他 div 附加到一个父 div。在每个 div 中都有一个图像(用作按钮),单击该图像时需要调用两个函数。这通常会这样做:

 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

由于您似乎已经在使用 jQuery(基于您的 .append() 片段),您可能需要考虑将该函数从内联代码中抽象出来。因此,您最终可能会得到以下结果:

$('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

只需用反斜杠转义字符串中的'and字符,分别得到和。尽管您可能希望摆脱内联属性事件处理程序,但它们很难维护。"\'\"

于 2013-10-24T23:53:20.493 回答
0

尝试这个..

制作一个接受 2 个参数的函数并将这 2 个函数放入其中

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

在你的内联

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

或尝试逃跑'

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