2013-09-04 2 views
1

Je ne peux pas sembler obtenir append travailler pour les éléments que je suis détachez avec detach()jQuery rajoutez pas insérer des éléments détachés

Au fond ce que je veux faire est de supprimer certaines images du DOM basée sur la taille de l'écran (plus que 900px) et les rajouter (plus petit que 900px). J'utilise enquire.js pour gérer les points d'arrêt, mais je suis incapable d'implémenter correctement l'insertion des éléments supprimés.

Voici le html:

<div class="mobile-slides"> 
    <a><img src="image.jpg" /></a> 
    <a><img src="image2.jpg" /></a> 
    <a><img src="image2.jpg" /></a> 
</div>  

Voici le js que je utilise:

enquire.register("screen and (min-width: 900px)", { 
    match : function() { 
     var slides = $('.mobile-slides a').detach(); 
    }, 
    unmatch : function() { 
     $('.mobile-slides').append(slides); 
    } 
}); 

Détacher semble fonctionner mais quand la deuxième condition est rien rencontré qui se passe. Est-ce que je fais quelque chose de mal?

EDIT erreur stupide en mon nom, je déclarais que les « diapositives » variables à l'intérieur de la fonction match inquire donc il n'a pas été à la disposition de la fonction unmatch.

Cela fonctionne maintenant:

var slides = $('.mobile-slides a'); 
enquire.register("screen and (min-width: 900px)", { 
    match : function() { 
     $('.mobile-slides a').detach(); 
    }, 
    unmatch : function() { 
     $('.mobile-slides').append(slides); 
    } 
}); 

Je pourrais aussi utiliser remove() il semble au lieu de Détacher()

+0

pouvez-vous fournir un violon le reproduit le problème? – dc5

+0

Essayez 'console.log (slides);' juste avant 'append();' pour voir si vous donnez quelque chose à ajouter. –

+1

cela ressemble à un problème de portée de la variable 'slides', vous devez partager plus code –

Répondre

2
slides.appendTo('.mobile-slides'); 
code

exemple pour le bouton clic,

var slides; 
$("button").click(function() { 
    if (slides) { 
    slides.appendTo(".mobile-slides"); 
    slides = null; 
    } else { 
    slides = $('.mobile-slides a').detach(); 
    } 
}); 
+0

Notez que ici la variable 'slides' est utilisée comme une bascule de' null' vers un tableau d'éléments réel. L'instruction 'if' fait ce travail, sinon, ce serait inutile! –

Questions connexes