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

标签 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);
}

最佳答案

从问题中突出显示的语法可以看出,您没有正确转义字符串中的引号。试试这个:

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);
}

另请注意,最好使用委托(delegate)事件处理程序来实现此目的,而不是使用过时的内联事件属性。试试这个:

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');
});

关于javascript - Jquery 动态创建元素 | onclick 传递字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32882166/

相关文章:

javascript - 定期调用javascript函数

javascript - 在捕获事件的同时禁用滚轮?

javascript - 如何使用 Dropzone JS 获取 Amazon S3 响应 header ?

javascript - 如何在 window.resize 上动态调整 3 个 div 的大小?

javascript - 使用 jQuery 从子弹出窗口动态填充父窗口上的选择选项

javascript - 如何在没有内联 JavaScript 处理程序的情况下将参数从动态表传递到事件处理程序

javascript - 检查字符串变量名称是否是对象的 JavaScript 函数

javascript - Vue 不会为特定的 API 请求呈现数据

JavaScript:如何使用 fillRect 使用 Canvas 绘制多个矩形?

jquery - jquery 日期选择器入门