как исчезнуть .html () - PullRequest
       11

как исчезнуть .html ()

2 голосов
/ 08 июня 2011
$('.overview li a').click(function(){
        $('#large-img').html("<img src=" + $(this)
                           .attr('href') + "/>" + "<br /><div>" + $(">.desc",this)
                           .html()); //HOW TO FADEIN this
        return false;
        });

Ответы [ 2 ]

4 голосов
/ 08 июня 2011

.fadeIn() можно вызывать только в коллекциях jQuery. html() возвращает строку, поэтому ее нельзя использовать для этого. Один из возможных путей - создать коллекцию jQuery из вашего HTML (которую вы хотите вставить), скрыть ее, затем добавить на свое место и затемнить.

Этот код делает это:

$('.overview li a').click(function(){
    var $newstuff=
        $("<img src=" 
        + $(this).attr('href') 
        + ">"
        + "<br><div>" 
        + $(">.desc", this).html()
        + '</div>').hide();

    $('#large-img').append($newstuff.fadeIn('slow'));
    return false;
});

jsFiddle Demo

И тот же код, немного более в стиле jQuery:

$('.overview li a').click(function(){  
    $('<img>').attr('src', $(this).attr('href'))
        .add('<br>')
        .add($('<div>').html($(">.desc", this).html()))
        .hide()
        .appendTo($('#large-img'))
        .fadeIn('slow'); 
    return false;
});

jsFiddle Demo 2

0 голосов
/ 08 июня 2011

Попробуйте:

$('.overview li a').click(function(){
    var a = this;
    var img = $("<img src='" + $(this).attr('href') + "'/>" +  "<br /><div>");
    $('#large-img').hide('fast', function(){ 
        $(this).html(img + $(">.desc", a)).show('fast'); 
    });
    return false;
});
...