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>

クリック イベントの削除ボタンは機能しますが (fancybox はクリックで閉じられます)、li 要素は HTML から削除されません。何かがおかしい - $('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"]いくつかの特殊文字を使用できる場合は、セレクターに使用する必要がある場合があります。したがって、セレクターを次のように置き換えてみてください。

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