javascript - 使用动态创建的按钮调用 SignalR hub 方法

标签 javascript jquery asp.net signalr signalr-hub

我有一个问题,按钮点击在动态创建时不会触发,

我知道,here is the solution .

问题是这样的:

我正在使用 SignalR。当聊天中心启动时,我必须声明单击事件(以调用一些中心方法)。请看下面

在这种情况下单击按钮有效

  $(document).on('click', "#chatlist li .gobtn", function (e) {
            var id = $(this).closest("li").data("message-id");
        }); 

但我应该从这里调用它

$.connection.hub.start().done(function () {
      //button click not fires here but it must be here
     $('#chatlist li .gobtn').click(function () {
      var id = $(this).closest("li").data("message-id");
      chat.server.sendAnswer(id);
      })
    })

如果您有任何解决办法,请帮忙。

最佳答案

如果您像下面这样更改代码,我认为它会起作用

    var chat;
var _sendAnswer;
$(function () {
    var chat = $.connection.chatHub;
    $.connection.hub.start().done(function () {
        _sendAnswer = function sendAnswer(id) {
            chat.server.sendAnswer(id);
        }
    });

    $(document).on('click', "#chatlist li .gobtn", function (e) {
        var id = $(this).closest("li").data("message-id");
        if (_sendAnswer != undefined && typeof _sendAnswer == 'function') {
            _sendAnswer(id);
        }
    }); 
});

祝你好运

关于javascript - 使用动态创建的按钮调用 SignalR hub 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29055013/

相关文章:

asp.net - 超出 Azure 请求队列限制

javascript - 将 jQuery.ajax() 替换为 Go REST API 端点的 fetch() - 空负载

javascript - 将 Promise 代码替换为异步代码,加上 JavaScript 中使用 map() 的 For 循环

javascript - 如何在给定时间之前停止执行指令?

javascript - 检测内联图像加载

javascript - `vertical-align: middle` 没有达到我的预期

Javascript 在 .this Click 上交换图像

javascript - Jquery JavaScript 创建动态二维数组

具有 Resharper 建议的 C# 静态类

javascript - 如何在 C# 中按组名添加单选按钮的选定值?