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
qui a fixé le! Merci cm. Maintenant va écrire "Je vais lire l'api correctement à l'avenir" 100 fois. –
quand je dis 'ça' je veux dire $ (". Sortable"). Sortable ('refresh'); bien sûr :) –