2010-04-23 7 views
2

J'utilise le plugin jquery cluetip et essayer de comprendre comment supprimer toutes les boîtes de dialogue ouvert cluetip une fois que je charge le nouveau contenu via ajax. Je suis soit coincé avec les boîtes de dialogue montrant encore sur le nouveau contenu, ou les moyens que j'ai essayé de résoudre ce problème en fait supprimer toutes les futures boîtes de dialogue à partir d'afficher.Jquery Cluetip - nettoyer entre le contenu chargé ajax

Voici mon code, merci pour toute aide.

Sur dom ready j'instancie cluetip comme ci-dessous.

//activate cluetip 
     $('a.jTip').cluetip({ 
      attribute: 'href', 
      cluetipClass: 'jtip', 
      arrows: true, 
      activation: 'click', 
      ajaxCache: false, 
      dropShadow: true, 
      sticky: true, 
      mouseOutClose: false, 
      closePosition: 'title' 
     }); 

Lorsque je charge un nouveau contenu, j'ai le code suivant. Le problème que j'ai est que $ ('. Cluetip-jtip'). Empty() empêche les boîtes de dialogue de s'ouvrir sur le nouveau contenu chargé, alors que la fonction destroy ne supprime aucune boîte de dialogue ouverte, mais détruit juste le objet actuel.

 $('.next a').live("click", function(){ 

      var toLoad = $(this).attr('href'); 

      var $data = $('#main_body #content'); 

      $.validationEngine.closePrompt('body'); //close any validation messages 
      $data.fadeOut('fast', function(){ 
       $data.load(toLoad, function(){ 
        $data.animate({ 
         opacity: 'show' 
        }, 'fast'); 
        //reinitialise datepicker and toolip 
        $(".date").date_input(); 
        //JT_init(); 
        $('.hidden').hide(); 
        //scroll to top of form 
        $("html,body").animate({ 
         "scrollTop": $('#content').offset().top + "px" 
        }); 
        //remove existing instance 
        //$('a.jTip').cluetip('destroy'); 
        //remove any opened popups 
        $('.cluetip-jtip').empty(); 
        //reinitialise cluetip 
        $('a.jTip').cluetip({ 
         attribute: 'href', 
         cluetipClass: 'jtip', 
         arrows: true, 
         activation: 'click', 
         ajaxCache: false, 
         dropShadow: true, 
         sticky: true, 
         mouseOutClose: false, 
         closePosition: 'title' 
        }); 
       }); 
      }); 

      return false; 
     }); 

Répondre

0

Avez-vous essayé de déclencher le bloc pour fermer les boîtes de dialogue ouvertes? Ajoutez ceci au lieu d'utiliser $('.cluetip-jtip').empty();

$(document).trigger('hideCluetip'); 
+0

Merci pour cela - a travaillé un régal. J'ai gardé la ligne destroy() aussi pour éviter les instances multiples – ted776