jquery - 带参数的动态创建的订单项上的事件绑定
问题描述
我正在使用 jQuery 创建连接用户的动态列表。我在绑定到单击事件并将参数传递给它时遇到问题。
创建动态订单项的代码如下:
setTimeout(function () {
$(".kt-subheader__toolbar").html('<span class="noti" id="editDash"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1" class="kt-svg-icon"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><path d="M17,12 L18.5,12 C19.3284271,12 20,12.6715729 20,13.5 C20,14.3284271 19.3284271,15 18.5,15 L5.5,15 C4.67157288,15 4,14.3284271 4,13.5 C4,12.6715729 4.67157288,12 5.5,12 L7,12 L7.5582739,6.97553494 C7.80974924,4.71225688 9.72279394,3 12,3 C14.2772061,3 16.1902508,4.71225688 16.4417261,6.97553494 L17,12 Z" fill="#000000" /><rect fill="#000000" opacity="0.3" x="10" y="16" width="4" height="4" rx="2" /></g></svg><span class="count"> </span></span><div class="noti-content"><div class="noti-top-arrow"></div> <ul id="notiContent"></ul></div>');
$("#editDash").on("click", function (e) {
e.stopPropagation();
$('.noti-content').show();
var count = 0;
count = parseInt($('span.count').html()) || 0;
//only load notification if not already loaded
if (count > 0) {
getUserNotifications();
}
$('span.count', this).html(' ');
})
}, 2000);
function getUserNotifications() {
$('#notiContent').empty();
$.each(connectedUsers, function (index, value) {
$('#notiContent').append($('<li onclick="startUserChat(' + value.ConnectionId + ')">New contact : ' + value.UserName + ' (' + value.ConnectionId + ')</li>'));
})
}
function startUserChat(connectionId) {
alert("Start chat with user: " + connectionId);
}
我不仅需要在startUserChat(connectionId)
单击订单项时调用“”函数,而且还需要将该订单项的 connectionId 传递给该函数。目前,我根本无法触发 onclick,我意识到这是因为订单项是动态创建的,并且我查看了一些解决方案,说我需要绑定到父元素,但是接下来该怎么做我传参数?
解决方案
您的代码应该可以正常工作...我认为使其无法正常工作的唯一原因value.ConnectionId
可能是字符串。
所以我建议你使用模板文字,所以引号问题比字符串连接更容易管理。
尝试这个:
$('#notiContent').append($(`<li onclick="startUserChat('${value.ConnectionId}')">New contact : ${value.UserName} (${value.ConnectionId})</li>`));
请注意,传递的参数周围有一些引号${value.ConnectionId}
。
推荐阅读
- aws-lambda - 从 Lambda 访问 AWS SQS 时,“客户端网络套接字在建立安全 TLS 连接之前已断开”
- node.js - Square Node SDK API 调用返回“未授权”错误
- r - 根据条件和向量对列进行变异
- git - 基线代码更改时 git 合并的正确方法
- javascript - 毛毛雨useCacheCall()期间出错:TypeError:无法读取未定义的属性“方法”
- javascript - 输入逻辑不应该适用于所有输入元素吗?
- sql-server - 多个用户竞争“下一个”订单
- python - keras 的准确性提高不超过 59%
- python-3.x - Ubuntu 18.04 Python 3.7.5 无法安装tensorflow?
- c# - 如何检测 UI 按钮是否已被释放?统一 - C#