Dlaczego .mydiv img nie zostanie usunięty w tym kodzieBlokalnym?

$( document ).on( "click", '.onhover', function() {
    $('.mydiv img').remove();
    var clone = $('.onhover').clone();
    $('.mydiv').append(clone);
});

Powinienem także dodać, że każdy obraz src jest Base64 , nie jestem pewien, czy to problem.


Edytuj: .onhover html

<img class="onhover" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4A...Am1QaMG+m7GaFP+FMUDQBFHUkTMCkZGFdLgDklAJgAcjeFOZgU+RP+FEUDQFFH2gRgijRgmtH+bkb/s5iAaesECH+KogGgKJqAMdAfN1rf689tf2uSpk0CdlvYR/hTFA0ARR15EzDKGMw6TSCmSBVm1TiAzwJ6PwLwhD9F0QBQ1JEyAcDkKQFMMZqfFfzTLgPcTRowy6h/XBJA+FMUDQBFHWkTMM4AYIqUABMeexoT4KdMBMYZhEmjfsKfomgAKIomYMo0YNJof9bCv0lJwChoz3I/MEXkT/hTFA0ARR1FEzApDZhkGMYBfzcJwCzwngX8hD9F0QBQFE3AHI3AtKnCbkb/uxnRT/s4hD9F0QBQFNOAKW7vBvR7TQCmhf7M4Cf8KYoGgKJoAnZnBCb9m73WAEwLcoKfomgAKIqagwmYBPNZ/99x908z6p+XUSD8KYoGgKKoXRqBeY3095oMTDIBBD9FLaj+/wEAfEsmcAJIeAcAAAAASUVORK5CYII=" style="float:left; height: 100%; position: relative; width: 55px; margin-right: 4px;">
0
Nick B 14 sierpień 2014, 22:53

2 odpowiedzi

Najlepsza odpowiedź

Prawdopodobnie tego chcesz.

$('.onhover').on("click", function () {
    $('.mydiv').html($(this).clone());
});

skrzypek tutaj

EDYTUJ:

Mam tutaj zaktualizowany kod, który obsługuje miniatury i pełnowymiarowe obrazy dla jednego widoku:

http://jsfiddle.net/paoloposo/kqukiMY3/5/

1
paolo 14 sierpień 2014, 19:47

Musisz klonować przed usunięciem. Możesz także upewnić się, że usuwasz coś, co jest kliknięte:

$( document ).on( "click", '.onhover', function() {
    var $this = $(this),
        $parent = $this.parent(),
        $clone = $this.clone();

    $this.remove();
    $parent.append( $clone );
});

Edytuj: Zakładając, że .mydiv jest gdzieś indziej na stronie ... może coś takiego:

<div class="mydiv"></div>

<div class="thumbnails">
    <img class="onhover" src="img1.jpg" />
    <img class="onhover" src="img2.jpg" />
    <img class="onhover" src="img3.jpg" />
</div>

... Wtedy chcesz użyć następującego kodu zamiast tego:

var $mydiv = $('.mydiv');
$( document ).on( "click", '.onhover', function() {
    var $clone = $(this).clone().removeClass('onhover');
    $mydiv.empty().append( $clone );
});
0
Ryan Wheale 14 sierpień 2014, 19:12