2010-05-24 4 views
0

Comment obtenir l'identifiant d'un élément dans une liste sélectionnable, si la liste est créée dynamiquement?jquery ui selectable get id?

<ul id="selectable"> 
    <li id='1'>..</li> 
     . 
     . 
     <li... 
    </ul> 

J'ai essayé var num = $('#selecable :selected').attr("option" , 'id'); mais obtenir seulement [object Object] ...

Quelle est la bonne façon?

+3

ID ne peuvent pas être des nombres, ou plutôt peut » Commencez avec eux, assurez-vous que vos identifiants ont un préfixe de sorte qu'ils sont valides. –

+0

@Nick Craver Bon point, j'ai raté ça quand j'ai regardé ça. – ICodeForCoffee

+0

votre "#selecable" a une faute de frappe –

Répondre

4

La liste des ids sélectionnés serait: modifier: mieux methinnks

$('#selectable').selectable(function(){ 
    selected:function(){ 
     var idlist = $(this).attr('id'); 
     //do something with the list...of id's 
    } 
}); 
+0

' : selected' ne fonctionne pas sur les éléments 'li'. –

+0

oui, j'ai eu une crampe de cerveau, édité la chose idiote :) pendant que vous étiez en train de commenter. –

6

Mise à jour:

Pour être complet, si un élément est sélectionné, le plug-in ajoute une classe ui-selected à l'élément. Ainsi, vous pouvez obtenir l'ID de l'élément courant sélectionné via:

$('#selectable .ui-selected').attr('id'); 

Mais sachez que plusieurs éléments peuvent être sélectionnés.


Le plugin jQuery UI sélectionnable calls a callback whenever you select an element, il vous suffit de fournir:

$("#selectable").selectable({ 
    selected: function(event, ui) { ... } 
}); 

Cela dit, comme Nick mentionne déjà, les ID ne peuvent pas commencer par un chiffre.

:selected ne fonctionne que sur option éléments.

0
jQuery('#selectable').selectable(function(){ 
    selected: function(event, ui) 
    { 
    jQuery(".ui-selected", this).each(function() 
    { 
      var objID=jQuery(this).attr("id"); 
    }); 
    } 
}); 
5

Cette version ne nécessite pas de noms de classes spécifiques. Utilisez $(ui.selected).attr('id') pour obtenir le (dernier) sélectionné ID de l'élément:

$("#selectable").selectable({ 
    selected: function(event, ui) { 
     alert($(ui.selected).attr('id')); 
    } 
}); 
0
jQuery('#selectable').selectable(function() { 
    selected: function(event, ui) 
    { 
     alert(ui.selected.id); 
    } 
}); 
+0

Pouvez-vous s'il vous plaît donner quelques explications avec votre réponse? –

0

vérifier ce ..

$(".ui-selected", this).each(function() { 
    var index = $("#selectable li").attr(id); 

    }); 
-1
<script> 
$(function() { 
    $("#selectable").selectable({ 
     selected: function() { 
      var id = $(".ui-selected", this).attr("id"); 
      //alert(id); 
     } 
    }); 
}); 

+0

Cela ne répond pas à la question. –

+0

merci Rob, j'ai modifié la réponse. – inquisitive

+1

Vous voudrez peut-être expliquer votre réponse. Il ne s'agit pas seulement de répondre à des questions, mais d'enseigner aux gens comment les choses fonctionnent. – Machavity