2010-04-23 2 views
0

J'ai une page html avec (entre autres) une fenêtre Unity3D. Je voudrais remplacer tout sur la page sans provoquer le rechargement de la fenêtre Unity. J'ai essayé le jquery-tasticRemplacer l'entourage d'un élément html par un autre document

function replaceSurround(keepElem, newElem) 
    { 
     keepElem.siblings().remove(); 
     keepElem.prepend(newElem.prevAll()); 
     keepElem.append(newElem.nextAll()); 

     var keepParent = keepElem.parent(); 
     var newParent = newElem.parent(); 
     if (keepParent && newParent) 
     { 
      replaceSurround(keepParent, newParent); 
     } 
    } 

suivant où keepElem est un élément dans le document original et newElem est l'élément correspondant dans le nouveau document, mais il ne fonctionne pas très bien.

+0

Ce n'est pas un jQuery que j'ai jamais vu – SeanJA

+0

@SeanJA, sûrement jQuery fournit le sélecteur 'siblings', mais je reconnais que ce n'est pas très spécifique à jQuery. :) – KvanteTore

Répondre

0

Voici ce que j'ai, il semble fonctionner ...

jQuery.fn.rewrap = function(newWrap){ 
    var $parent = jQuery(this).parent(); 
    var $clone = jQuery(this).siblings().clone() 
    var $newParent = $clone.wrap(newWrap).parent().clone(); 
    $parent.replaceWith($newParent); 
} 


$('#header').rewrap('<div class="container" style="background-color:blue;" />'); 

Je l'ai testé sur le site Stackoverflow. Un petit problème cependant, il semble être en train de refaire quelques événements onX ...?

[modifier]

À la réflexion, ce n'est pas ce que vous vouliez dire du tout ....

Tu ne peux pas faire quelque chose comme:

$('#result').load('ajax/test.html #result'); 

?

+0

Mon problème principal est que j'ai besoin de recharger un tas de fichiers javascript (j'essaie de changer les paramètres régionaux de mon site sans recharger la fenêtre d'unité, et tous mes fichiers script ont été compilés séparément pour chaque locale), et comme ces scripts peuvent faire à peu près quand rechargé je ne pense pas que je vais avoir beaucoup de chance, et je vais devoir recharger la page entière. Merci quand même pour l'effort :) – KvanteTore

Questions connexes