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

时间:2015-03-14 22:31:25

标签: javascript jquery asp.net signalr signalr-hub

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

我知道,here is the solution

问题是:

我正在使用SignalR。我必须在启动聊天中心时声明click事件(调用某个hub方法)。请看下面的

在这种情况下,

按钮单击工作

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

如果您有任何想法可以解决,请提供帮助。

1 个答案:

答案 0 :(得分:1)

如果您更改下面的代码,我认为它可行

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

祝你好运