javascript - 在 jsrender 模板内绑定(bind)事件

标签 javascript jquery ajax jsrender

添加的模板中的所有链接 .delete.editRight 均无效。外部所有相同的链接都可以正常工作。

    $(document).ready(function () {
    AjaxGetAll();

    $(".delete").on("click", function () {
    //do stuff
    });

    $(".editRight").on("click", function () {
    //do stuff
    });

    function AjaxGetAll() {
    $.ajax({
    success: function (data) {
        if (data.hasOwnProperty("d")) {
            var favs = data.d;
            if (favs.length > 0) {
                $("#addedList").html(
                $("#addedTemplate").render(favs)
                );
            }
        }
});
}

<script id="addedTemplate" type="text/x-jsrender">
<div class="wrapright">
        <a id="editRight_{{>TimePin}}" class="editRight">Edit</a>
        <a id="deleteRight_{{>TimePin}}" class="delete">Delete</a>
</div>

最佳答案

使用基于 .on() 的事件委托(delegate)为动态添加的内容注册事件

$(document).on("click", '.delete', function () {
    //do stuff
});

$(document).on("click", '.editRight', function () {
    //do stuff
});

关于javascript - 在 jsrender 模板内绑定(bind)事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16294288/

相关文章:

javascript - 如何将值从 MVC ActionResult 传递到 AJAX 成功回调函数?

javascript - 单击子 div 时不会调用父 onclick() 事件

JavaScript 正则表达式符号出现

javascript - 如何在 JavaScript 中创建嵌套的 Promise?

javascript - 为什么元素id不能以整数开头?

javascript - Safari 中未获取 jQuery AJAX HTTP 错误代码

javascript - 设置 javascript 变量的 Ajax 响应覆盖了任何 html 元素

javascript - 对象过滤某些值

javascript - Bootstrap 数据表自定义下拉过滤器

jquery - 你如何防止 jquery 移动加载对话框?