2013-01-13 13 views
10

Sto provando a svanire in un div, tenerlo sullo schermo per alcuni secondi e poi scomparire. Il problema è che non rimane sullo schermo finché mi aspetto, anche impostando il ritardo per circa 10 secondi, rimane solo sullo schermo brevemente. Ho letto molti post e ho provato molte cose come settimeout, ma non vado da nessuna parte in fretta.JQuery fadeIn Delay FadeOut

Ecco il mio script:

<script type="text/javascript"> 
    function pageLoad() { 
    $("[id*=lnkSelect]").live("click", function() { 
    var price = $("#price").html($(".prodprice", $(this).closest('tr').prev().children ('td.prodpricelabel')).html()); 
    var code = $("#code").html($(".prodcode", $(this).closest('tr').prev().prev().children ('td.prodcodelabel')).html()); 
    //Build the new HTML 
    $(code).prepend("<br/>Item: "); 
    $(code).append("<br/>Has been<br/>added to your cart.<br/>Price: "); 
    $(".tooltipleft").html(code); //Set the new HTML 
    $(".tooltipleft").append(price); 
    $(".tooltipleft").fadeIn('slow').delay(5000).fadeOut('slow'); 
    }); 
    }; 
    </script> 

così sto ricevendo il codice del prodotto e il prezzo dal codice HTML, modificando il codice HTML nel div poi dissolvenza questo come una notifica che un elemento è stato aggiunto alla carrello della spesa.

Questo è il div che voglio a svanire in:

<div class="tooltipleft" id="tooltip"> 
    <span id="code"></span><span id="price"></span> 
    </div> 

e il pulsante nella griglia:

<asp:ImageButton ID="lnkSelect" runat="server" ImageUrl="~/Buttons/add_to_cart.png" 
    AlternateText="Add To Cart" CommandArgument='<%# Eval("ProductID") %>' CommandName="Add" 
    ImageAlign="Right" /> 

Grazie per qualsiasi aiuto o commenti.

applausi CM

+0

Questo dovrebbe funzionare come previsto. Puoi pubblicare un violino in cui non funziona? –

+0

Funziona come previsto: http://jsfiddle.net/265u3/ –

+0

fare clic sul pulsante Aggiungi al carrello in questa pagina Web http://www.t2tuk.co.uk/Items.aspx?Category=4 per vedere cosa intendo –

risposta

12

Usa mostrare e nascondere, invece di fadeIn e fadeOut per vedere se funziona. Se non funziona, il tuo problema è da qualche altra parte. Come si vede questo funzionamento example il $('#foo').fadeIn().delay(2000).fadeOut(); è una riga corretta di codice.

$('#tooltipleft').show(0).delay(5000).hide(0); 
+1

'show (0)' non eseguirà alcuna animazione. 'show ('slow')' eseguirà un'animazione diversa da quella prevista. –

+0

Non c'è alcun problema con questa parte del codice del richiedente: http://jsfiddle.net/265u3/ –

+0

Ho appena stancato questo $ ('. Tooltipleft'). Show (0) .delay (5000) .hide (0); è ok ma non rimane sullo schermo per altri 5 secondi come 2, quindi anyreason perché dovrebbe essere? –

16

fare qualcosa di simile: http://jsfiddle.net/LJsNG/1/

$(function() { 
    $('.tooltipleft').fadeIn('slow', function() { 
    $(this).delay(5000).fadeOut('slow'); 
    }); 
}); 
+0

Non c'è alcun problema con questa parte del codice del richiedente: http://jsfiddle.net/265u3/ –

+0

sì, c'è. Il fadeout non prende il ritardo di 5 secondi, il mio fa – Chanckjh

+0

Vedere il mio violino. Il fadeout prende il ritardo –