2012-02-03 4 views
1

J'ai lu quelques messages à ce sujet, mais aucun n'a donné de réponse (ou les questions étaient inutilement compliquées ...). Je vais rester simple. J'utilise jQuery UI pour une fonction draggable/droppable. Lorsqu'un objet déplaçable est déposé sur l'élément cible, une fonction AJAX est appelée. Tout fonctionne bien, mais seulement une fois. Quand je l'essaie à nouveau, je ne peux même plus faire glisser l'élément. Voici mon code (simplifié):Comment faire pour que jQuery fonctionne après un appel AJAX

$(document).ready(function() { 
    $(".item").draggable(); 
    $(".target").droppable({ 
     drop: function(){ 
      AjaxFunction(var1, var2); 
     }    
    }); 
}); 

Ceci est la AjaxFunction simplifiée:

function AjaxFunction (var1, var2) { 
    var url = "ajax/script.php"; 
    var data = {position: var1, tag: var2}; 
    $.post(url, data, function(data) { 
     $(".target").html(data).show(); 
    }); 
} 

Quelqu'un peut-il me donner une solution spécifique au code ci-dessus sur la façon de le faire fonctionner?

+1

Que fait exactement la fonction Ajax? –

+0

vos fixations sont-elles perdues? essayer de le relier dans le drop: callback –

+0

> ron: la fonction AJAX met à jour .target –

Répondre

0

Vous pouvez vous référer à ce poste:

Jquery Draggable - How do I create a new draggable div on the fly that can then be dragged?

Plus précisément cette partie:

$(element).draggable('disable'); 

et

$(element).draggable('enable'); 

Il est pas exactement la même chose, mais il donne un aperçu du problème. Fondamentalement, vous pouvez essayer de désactiver draggable et droppable, puis les réactiver après votre succès ajax.

function AjaxFunction (var1, var2) { 
    var url = "ajax/script.php"; 
    var data = {position: var1, tag: var2}; 
    $.post(url, data, function(data) { 
     $(".item").draggable("destroy"); 
     $(".target").droppable("destroy"); 

     $(".target").html(data).show().droppable({revert:true}); 
     $(".item").draggable(); 
    }); 
} 
+0

hey kai, merci pour le lien. J'ai lu le message, mais je ne vois pas comment cela s'applique ici. comment l'appliqueriez-vous? pouvez-vous peut-être modifier l'extrait de code de mon message ci-dessus? serait génial –

+0

voir si cela aide du tout –

Questions connexes