如何调用此JS函数并传递参数?

时间:2014-05-11 03:32:10

标签: javascript signalr

我的SignalR中心有以下脚本,我在调用函数时遇到问题,因此我可以传递一个参数。

$(function () {
    var hub = $.connection.commentsHub;

    $.connection.hub.start().done(function () {
        function deleteComment(commentId) {
            hub.server.DeleteComment(commentId);
        }
    });
});

然后在我的评论列表中,我试图用此调用我的deleteComment函数,但是我收到一条错误,指出没有定义deleteComment。

<a onclick="deleteComment(@item.CommentId)">Delete</a>

如何调用我的deleteComment函数?

或者,有没有更好的方法将参数传递给我的服务器?

1 个答案:

答案 0 :(得分:1)

您的deleteComment()函数隐藏在两层其他函数中,因此您的内联JavaScript无法访问它。我建议(1)将其从done回调中删除,因为它没有理由在那里和(2)使用不引人注目的JavaScript:

HTML:

<a href="#" class="delete-comment" data-commentid="@item.CommentId">Delete</a>

JavaScript的:

$(function () {
    var hub = $.connection.commentsHub;

    function deleteComment(commentId) {
        hub.server.DeleteComment(commentId);
    }

    $.connection.hub.start().done(function () {
        $(".delete-comment").click(function() {
            deleteComment($(this).attr("data-commentid"));
        });
    });
});