2013-01-06 3 views
1

J'ai un problème étrange et je ne sais pas comment le réparer.
Ma page charge un plugin dans l'événement $ (function() .Il y a un bouton sur la page qui cache la 1ère DIV (qui contient le plugin rendu) et charge le contenu d'une autre page html dans un 2ème DIV. le 2ème DIV a un bouton "Annuler" qui cache la 2ème DIV et montre la 1ère DIV originaleLa fonction du plugin Jquery n'est pas disponible après le changement de DOM?

Tout fonctionne bien - mais le DOM a perdu les fonctions du plugin, donc le plugin ne fonctionne plus correctement. en essayant de charger des fonctions dans Teh plug-in. (ex: .fn.myplugin $ = function() ...)

est ici un code PSEUDO

Première page .....

$function() { 
    //Load plugin 
    $("div1").theplugin(); 

    $("button1").click(function() { 
     $("div1").hide(); 
     $.get("2ndpage.html", function (data) { $("div2").html(data); }); 
    }); 
}; 

Deuxième page .....

$function() { 
    $("button2").click(function() { 
     $("div2").hide(); 
     $("div1").show(); 
    }); 
}; 

.... À ce stade, si je clique sur button2, il ne cache DIV2 et montre DIV1 - et DIV1 est encore dans le dernier état avant de cliquer sur button1, mais aucune des fonctions du plugin n'est dans le DOM.

Quelqu'un sait-il comment résoudre ce problème? Merci d'avance!

Plus d'info J'ai placé des montres sur la fonction plug-in (celui en question), et il change de sa définition de « non défini » lorsque le code touche ce point:

$.get("2ndpage.html", function (data) { 
    $("div2").html(data); //HERE 
}); 

Il est presque comme le DOM est remplacé par la page appelée par .get() - mais cela ne semble pas correct - ou est-ce? Peut-être y a-t-il une manière spéciale de tuer le contenu de la page 2 pour que le DOM retourne à l'état dans lequel il était avant que .get() soit appelé? Je ne sais pas, problème Thos est bizarre et est fustrating :) Merci les gars

Répondre

0

Peut être que vous pouvez ci-dessous un pour l'événement cliquez sur le bouton de votre.

Ici, j'ai appliqué seulement pour 1 bouton. Vous devez l'appliquer pour les deux boutons et vérifier la sortie.

$("button2").unbind('click').bind('click', function() { 
    $("div2").hide(); 
    $("div1").show(); 
    return false; //to prevent the browser actually following the links! 
}); 

J'espère que cela vous aidera.

+0

n'a pas fonctionné - la fonction devient toujours "indéfinie" après une nouvelle page charge :( – Losbear

Questions connexes