2009-11-25 5 views
1

J'ai une page où j'ai une liste d'éléments triable (une div avec la classe 'sortable'), qui peut contenir initialement des éléments ou être vide. Les éléments sont dans une autre liste sur la page, et ont un bouton 'ajouter'. Quand on clique sur ajouter, ils vont dans la liste triable. Lorsque la page est déjà chargée avec certains éléments de la liste, le tri fonctionne, mais les éléments ajoutés ultérieurement dans la liste ne peuvent pas être triés, c'est-à-dire que rien ne se passe lorsque je clique sur leur élément déplaçable.Problème lors de la mise à jour des triables dans jquery

Voici le javascript pertinent: au départ, je l'avais avec setSortables appelé seulement sur le chargement de la page, mais ici je l'appelle à chaque fois qu'un élément est déplacé dans la liste triable.

//move this item into the sortable list 
function addAssetToQuestion(asset_id){ 
    asset_div = jQuery("#asset_"+asset_id); 
    asset_div.slideUp("fast", function(){ 
    jQuery("#assets").append(asset_div); 
    asset_div.find(".add-asset-button").hide(); 
    asset_div.find(".remove-asset-button").show(); 
    asset_div.find(".name").addClass("pointerhand");  
    asset_div.slideDown("fast"); 
    setSortables(); 
    }); 
} 

//set up the sortable list 
function setSortables(){ 
    $(".sortable").sortable({ 
    handle: '.name', 
    start: function() { jQuery(".audioplayer-container").hide(); }, 
    stop: function() { jQuery(".audioplayer-container").show(); } 
    }); 
} 

jQuery(document).ready(function(){ 
    setSortables(); 
}); 

merci, max

Répondre

0

Avez-vous essayé d'appeler rafraîchir? http://docs.jquery.com/UI/Sortable#method-refresh

Sinon, à première vue je pourrais proposer comme solution temporaire pour appeler détruire() puis setSortables() chaque fois que vous déposez un élément dans la liste ...

+0

qui a fixé le! Merci cm. Maintenant va écrire "Je vais lire l'api correctement à l'avenir" 100 fois. –

+0

quand je dis 'ça' je veux dire $ (". Sortable"). Sortable ('refresh'); bien sûr :) –