0

我有一个画廊,当点击图像时,会出现花哨的框。有一个带有点击事件的删除按钮:

jQuery(function ($) {
        $(".previewPhoto").on("click", function () {
                var photo = $(this).data('photo'),
                id = $(this).data('id'),
                link = 'http://domain.com/members/photos/' + id + '/' + photo;
                $.fancybox({
                    'padding'       : 0,
                    'href'          : link,
                    'transitionIn'  : 'elastic',
                    'transitionOut' : 'elastic',
                    'titlePosition' : 'over',
                    'title' : '<button class="deleteP">Delete</button>',
                    'onComplete': function() {
                        $(".deleteP").click(function() {
                            $.ajax({
                                url: 'ajax/deletePhoto.php',
                                type: 'POST',
                                data: {deletephoto:true, photo:photo}, 
                                success: function (result) {
                                    $.fancybox.close();
                                    $('li#'+photo).remove();
                                    $.msg('Photo Deleted!');
                                }
                            });
                        });
                    }
            });
        });
    });

HTML:

<ul class="gallery">
    <li id="9O9x5Ww0o8NOQ.jpg"><img data-id="29" data-photo="9O9x5Ww0o8NOQ.jpg" class="previewPhoto" src="http://domain.com/members/photos/29/9O9x5Ww0o8NOQ.jpg" width="140" height="116" alt=""></li>
</ul>

单击事件上的删除按钮有效(单击时关闭花式框),但未从 HTML 中删除 li 元素。有问题 - $('li#'+photo).remove(); 如果我想删除 li 元素,我该如何更改它?

4

2 回答 2

2

您可能想从 id 中删除“.jpg”,即“.”。将使选择器查找 li#9O9x5Ww0o8NOQ.jpg 这将是

<li id="9O9x5Ww0o8NOQ" class="jpg"/>

并且不存在。

于 2013-10-22T17:14:59.037 回答
-1

如果alert(photo);之前添加会显示什么$('li#'+photo).remove();??

如果为空,请尝试删除var开头的var photo = $(this).data('photo'),

[type="value"]有时,如果可以有一些特殊字符,则必须使用for 选择器。因此,尝试将您的选择器替换为:

$('li[id="'+photo+'"]').remove();
于 2013-10-22T17:15:06.963 回答