对于基于Web的项目,我正在使用jQuery。在代码的一部分中,根据连接到服务器的其他用户的活动,动态地将数据添加到客户端的屏幕上。我想编写一个代码,当客户端单击数据时,该代码将允许我执行功能。
为了详细说明,这里有一个列表,显示哪些成员在线。连接新客户端时,其名称将添加到列表中,所有其他用户都可以在屏幕上看到他在线。当另一个用户单击他的名字时,他发送一条消息请求。
这是相关的jQuery代码:
$('#inc').append("<br><i onclick='accept()'>"+data.plr+"<i><br>")
然后在此块下的另一个函数中定义了accept函数,就像
function a(){
$('#inc')....
}
function accept(){
//...
}
但是,当代码运行时,出现错误提示accept() is not defined
我该如何解决这个问题?
答案 0 :(得分:1)
也许您可以采用这种方式...
$('#inc').append("<br><i>"+data.plr+"<i><br>")
$('#inc i:last-child').click(accept);
我做了一个小的CodePen,让您看到实际的代码 https://codesandbox.io/embed/frosty-jang-fvk3j
答案 1 :(得分:1)
我一直都是这样做的。我觉得这更容易。
$('#inc').append("<br><i class="child">"+data.plr+"<i><br>")
$('.child').on("click",function(){
//your code here
});
答案 2 :(得分:1)
您也可以通过这种方式进行操作:
jQuery(function(){
click_link = $('<a class="" href="#">Click here</a>');
click_link .bind("click", function(){
alert('DO something');
});
$('.your_dom').append(click_link );
});
答案 3 :(得分:1)
使用jQuery方法将其写入:
var $i = $('<i>').text(data.plr).click(function(event) {
//handle here onClick event
}); //or if you have the function already declared just write .click(accept);
$('#inc').append('<br />', $i, '<br />');