[asp.net-mvc]JQuery.click() 不使用模板

发布时间: 2016/10/9 6:01:56
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

这里是我有 var 模板变量的 ajax 功能。

$.ajax({
type: "GET",
url: "/Home/GetComment",
dataType: "JSON",
success: 
    function (comments) {
        for (var i = 0; i < comments.length; i++)
        {

            var template = '<a id="like_button" class="like-comment" href="#">Like <span class="glyphicon glyphicon-thumbs-up"></span></a>'
        }

    }
});


$("#like_button").click(function (evt) {
    $.ajax({
        type: "POST",
        url: "/Home/AddLikes",
        data: { "likeid": id },
        dataType: "JSON",
        success:
            function () {
                alert('alert');
            }
    });
});

此单击函数是使用此模板,但如果我采取相同的模板,然后把它放在我的索引视图中,单击功能工作不工作。

这是索引视图中的代码在哪里它具有相同的 id 作为一个模板中︰

<a id="like_button" class="like-comment" href="#">Like <span class="glyphicon glyphicon-thumbs-up"></span></a>

解决方法 1:

将事件委托︰

$(document).on('click', "#like_button", function (evt) {

和改变你的 var idclass :

var template = '<a class="like-comment like_button" href="#">Like <span class="glyphicon glyphicon-thumbs-up"></span></a>'

因为你的锚动态生成的所以这不是要将直接事件绑定到它,所以要克服这一问题的文档中直接可用

你必须找出最近的静态父级的此元素可以是 div 与分配给它一些特定的类或 $(document), $(document.body) ,始终是可用来将事件委托。

赞助商