JQuery удалить () не удаляет - PullRequest
       34

JQuery удалить () не удаляет

3 голосов
/ 24 августа 2011

У меня есть следующий код, который позволяет мне реализовать функцию shareThis.То, что я пытаюсь сделать, это когда нажимается кнопка закрытия общего ресурса этого оверлея, я пытаюсь удалить функцию shareThis, которая поставляется с .share-span, а затем повторно инициализировать ее, однако remove(), похоже, не удаляет .span-share от DOM.

<script type="text/javascript">
function getShareData() {
    jQuery(".suit-gallery-btn").each(function(index){
        jQuery(this).children().remove('span');
        jQuery(this).append("<span class='share-span'></span>"); // ShareThis button will be inserted in this span, which we are appending to each <div class="suit-gallery-btn">
        var suitLink = jQuery(this).find('a'); // the "click more information" link. you will need the href and title from this element.
        console.log(suitLink);
        stWidget.addEntry({
            "service":"email",
            "element": jQuery(this).find('.share-span')[0],
            "title":suitLink.attr('title'),
            "type":"large",
            "text":suitLink.attr('title'),
            "image": suitLink.attr('href'),
            "summary":suitLink.attr('title'),
            "onhover": false
        });
    });
}

jQuery(document).ready(function() {
    getShareData();
    jQuery("#closeX, #greyScreen, .stCloseNew2, .close, .close2").live("click", function(){
        getShareData();
    });
});

    <div id="suit-gallery">
  <img src="../images/galleries/business/DSC_0055_sm.jpg" alt="Stylish button 3 business suit, beige lightweight high twist cool wool Holland &amp; Sherry" width="164" height="247" />
  <div class="suit-gallery-btn">
    <a href="../images/galleries/business/DSC_0055.jpg" rel="lightbox[business]" title="Stylish button 3 suit, beige lightweight high twist cool wool Holland &amp; Sherry from £695 choice of 90 designs and colours">Click for more information</a>
</div>
</div>

Ответы [ 3 ]

2 голосов
/ 24 августа 2011

Вы неправильно поняли семантику удаления.

Вы вызываете метод удаления для объекта, который необходимо удалить, а не для родительского объекта, из которого вы хотите удалить его.

Что-то вроде:

 jQuery('span.share-span', jQuery(this)).remove();
1 голос
/ 24 августа 2011

изменить эту строку:

jQuery(this).children().remove('span');

до:

jQuery(this).children('span.share-span').remove();

См. Это в действии здесь: http://jsfiddle.net/MarkSchultheiss/CUrXF/, где я немного изменил его, чтобы показать исходный диапазон, затем удаление при вызове функции.

1 голос
/ 24 августа 2011

Из того, что я вижу, в исходном коде нет span.

Похоже, вы пытаетесь remove() span до того, как у вас есть appended это?

...