Jquery动态创建元素| onclick传递字符串参数

时间:2015-10-01 07:49:27

标签: javascript jquery

我正在动态创建HTML,但是我收到了语法错误。如果我将href="javascript:startChat(' + user_id + ','video')"更改为href="javascript:startChat(' + user_id + ','"video"')",则会收到错误消息,说明视频未定义'。

html +='<li><a href="javascript:startChat('+user_id+','video')"><i class="uk-icon-video-camera uk-icon-large"></i></a></li>';

function startChat(user_id, type){
    console.log(type);
}

1 个答案:

答案 0 :(得分:5)

正如您在问题中突出显示的语法所示,您没有正确地转义字符串中的引号。试试这个:

html += '<li><a href="javascript:startChat(' + user_id + ', \'video\')"><i class="uk-icon-video-camera uk-icon-large"></i></a></li>';

function startChat(user_id, type){
    console.log(type);
}

另请注意,使用委托事件处理程序来实现此操作而不是过时的内联事件属性会更好。试试这个:

html += '<li><a href="#" data-userid="' + user_id + '"><i class="uk-icon-video-camera uk-icon-large"></i></a></li>';

$('ul').on('click', 'li', function(e) {
    startChat($(this).data('userid'), 'video');
});