jQuery create元素并单击后执行函数

时间:2019-07-19 05:59:28

标签: javascript jquery node.js http

对于基于Web的项目,我正在使用jQuery。在代码的一部分中,根据连接到服务器的其他用户的活动,动态地将数据添加到客户端的屏幕上。我想编写一个代码,当客户端单击数据时,该代码将允许我执行功能。

为了详细说明,这里有一个列表,显示哪些成员在线。连接新客户端时,其名称将添加到列表中,所有其他用户都可以在屏幕上看到他在线。当另一个用户单击他的名字时,他发送一条消息请求。

这是相关的jQuery代码:

$('#inc').append("<br><i onclick='accept()'>"+data.plr+"<i><br>")

然后在此块下的另一个函数中定义了accept函数,就像

function a(){
     $('#inc')....
}
function accept(){
    //...
}

但是,当代码运行时,出现错误提示accept() is not defined

我该如何解决这个问题?

4 个答案:

答案 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 />');

url.