2

我有一个弹出窗口,允许我选择图像并将图像名称作为列表中的行元素返回到父窗口。我想在行尾添加一个删除链接,以便单独删除该行。

主页:

    <script>
    $(document).ready(function(){
        $('.ImageManager').click(function (event) {
            event.preventDefault();
            var w = window.open("/image-manager", "popupWindow", "width=600, height=400, scrollbars=yes");
        });
    });
    $(document).ready(function(){
        $(".remove").on("click", function(){
            $(this).parent().remove();
        });
    });
    </script>

<ul id="imagelist">
</ul>
<a href="" class="ImageManager">Add Image</a>

图像管理器弹出:

<script>
    $(document).ready(function(){
        $(".addimage").click(function() {
            var imgname = $('img', this).attr("alt");
            $("#imagelist", window.opener.document).append('<li>' + imgname + '<a class="remove">Remove</a></li>');
        });
    });
</script>

在弹出窗口中,图像名称存储在替代文本中。当我在主页单击删除时,没有任何反应。浏览了其他具有相同标题的 SO 帖子,但找不到类似的解决方案。

4

1 回答 1

5

这将是在 DOM 准备好后添加的元素,因此它是动态的,您需要一个委托的事件处理程序:

$(document).ready(function(){
    $('.ImageManager').click(function (event) {
        event.preventDefault();
        var w = window.open("/image-manager", "popupWindow", "width=600, height=400, scrollbars=yes");
    });

    $("#imagelist").on("click", ".remove", function(){
        $(this).parent().remove();
    });
});
于 2013-11-12T00:51:06.927 回答