jQuery附加onclick

时间:2016-03-12 10:54:11

标签: javascript jquery append

我使用jquery append函数附加html代码。如果在onclick上我使用带有一个参数的函数 - 好吧,但是如果我使用带有多个参数的函数,我在控制台中会出错:SyntaxError: missing ) after argument list。我的代码:

var quote = quotes[i];
$('#quu').append('<div onclick="addBook('+quote.userId+', '+quote.book+')">'+quote.book+'</div>')

功能addBook:

function addBook(user_id, name) {
   alert(name);
   alert(user_id);
}

我做错了什么?

2 个答案:

答案 0 :(得分:2)

您需要在名称quote.book中添加引号,因为它应作为字符串参数传递给函数addBook

$('#quu').append('<div onclick="addBook('+quote.userId+', \''+quote.book+'\')">'+quote.book+'</div>')

var quote = {userId : 1, book: "The GodFather"};

$(document).ready(function(){
  
  $('#quu').append('<div onclick="addBook('+quote.userId+', \''+quote.book+'\')">'+quote.book+'</div>');

});

function addBook(user_id, name) {
   console.log(name);
   console.log(user_id);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="quu"></div>

答案 1 :(得分:0)

您没有附加函数。您需要绑定功能,可以使用JQuery bind来实现:

    $( "#foo" ).bind({
       click: function() {
         // Do something on click
       },
       mouseenter: function() {
         // Do something on mouseenter
       }
    });