2010-02-24 4 views
2

Comme mentionné je voudrais savoir comment je peux appliquer la fonction live() à ce code.Comment appliquer la fonction jQuery live() à ce code?

Ce code sera inséré par javascript:

<a class="link" href="url"><span>This content is hidden</span></a> 

C'est le javascript qui doit être en direct:

$('.link').append('<span class="hover"></span>').each(function() { 
     var $span = $('> span.hover', this).css('opacity', 0); 
     $(this).hover(function() { 
     $span.stop().fadeTo(500, 1); 
     }, function() { 
     $span.stop().fadeTo(500, 0); 
     }); 
    }); 

Un simple ajout d'.live de(). n'a pas l'air de faire l'affaire

toute aide appréciée!

+0

Voulez-vous dire que vous voulez que les trucs en vol stationnaire soient ajoutés via live()? – cmcculloh

+0

Si vous n'y ajoutez pas de choses de manière aléatoire et que vous faites beaucoup à l'ancienne, créez une fonction de liaison (sous la forme d'un plugin jquery) et appelez-la sur de nouveaux nœuds ajoutés. live() n'est pas aussi cool qu'il semble – naugtur

+0

fonction de liaison? avez-vous peut-être un exemple, je n'aime pas la syntaxe en direct, pourquoi ils n'auraient pas pu le rendre plus simple !? – kritop

Répondre

2

Je ne sais pas exactement ce que vous essayez de faire, mais je fais cette hypothèse: Vous ajoutez une balise "a", et vous voulez ajouter une "span" qui, lorsque survolée, a ces événements.

Ce n'est pas "en direct", et je fais l'hypothèse que vous savez quand vous ajoutez la balise "a". Lorsque vous faites cela, appelez simplement la fonction AddEvents pour faire l'append, donnez du CSS à l'enfant, puis appliquez un "hover" au nouvel enfant ajouté. Quelque chose comme cela devrait fonctionner, pas de fantaisie, mais devrait fonctionner:

function AddEvents() 
{ 
    $('.link').append('<span class="hover"></span>'); 
    var $span = $('.link span.hover'); 
    $span.css('opacity', 0); 
    $span.hover(function() 
    { 
     this.stop().fadeTo(500, 1); 
    }, function() 
    { 
     $span.stop().fadeTo(500, 0); 
    }); 
}; 

// call the function when needed 
AddEvents(); 

NOTE: Si vous connaissez le nouvellement ajouté « un » contexte, vous pouvez passer que par les addEvents(); appel de fonction, et de travailler dans les choses comme suit:

AddEvents($(this));//or the selector for that 'a' link 

function AddEvents(scopeItem) 
{ 
    scopeItem.append('<span class="hover"></span>'); 
    var $span = $('span.hover', scopeItem); 
    $span.css('opacity', 0); 
    $span.hover(function() 
    { 
     this.stop().fadeTo(500, 1); 
    }, function() 
    { 
     $span.stop().fadeTo(500, 0); 
    }); 
}; 
+0

merci beaucoup! son travail, génial – kritop

Questions connexes