2010-09-14 7 views
0

Eh bien voici mon code pour le faire.Modifier les valeurs sélectionnées dans la zone de sélection

Mais comme vous pouvez le voir, c'est moche.

Quelqu'un a-t-il de meilleures idées?

.delegate(".ui-icon-plus", "click", function() { 
    var d = $(this).parent().data("val"); 
    var values = $(obj).val(); 
    values.push(d); 
    $(obj).val(values); 
    $(this) 
    .removeClass('ui-icon-plus') 
    .addClass('ui-icon-minus') 
    .attr('title', 'Remove keyword from template') 
    .parent().appendTo('div .keyword-left .ui-widget'); 
}) 
.delegate(".ui-icon-minus", "click", function() { 
    var d = $(this).parent().data("val"); 
    var values = $(obj).val(); 
    var idx = values.indexOf(d); // Find the index 
    if(idx!=-1) values.splice(idx, 1); // Remove it if really found! 
    $(obj).val(values); 
    $(this) 
    .removeClass('ui-icon-minus') 
    .addClass('ui-icon-plus') 
    .attr('title', 'Use keyword in template') 
    .parent().appendTo('div .keyword-right .ui-widget'); 
}); 
+0

peut-on voir la sortie de thml souhaitée pour chaque cas s'il vous plaît – mcgrailm

Répondre

1

Qu'est-ce que vous avez des œuvres, vous pourriez mince vers le bas avec un double appel classe .toggleClass() sur chaque, mais il y a une zone de problème. .indexOf() ne sont pas disponibles sur les tableaux dans IE 9 <, donc je soit ajouter .indexOf() ou utiliser $.inArray() ici, comme ceci:

.delegate(".ui-icon-plus", "click", function() { 
    var d = $(this).parent().data("val"); 
    var values = $(obj).val(); 
    values.push(d); 
    $(obj).val(values); 
    $(this).toggleClass('ui-icon-plus ui-icon-minus') 
     .attr('title', 'Remove keyword from template') 
     .parent().appendTo('div .keyword-left .ui-widget'); 
}) 
.delegate(".ui-icon-minus", "click", function() { 
    var d = $(this).parent().data("val"); 
    var values = $(obj).val(); 
    var idx = $.inArray(d, values); // Find the index 
    if(idx!=-1) values.splice(idx, 1); // Remove it if really found! 
    $(obj).val(values); 
    $(this).toggleClass('ui-icon-plus ui-icon-minus') 
     .attr('title', 'Use keyword in template') 
     .parent().appendTo('div .keyword-right .ui-widget'); 
}); 
+0

votre partout aujourd'hui continue à me battre à elle 8 ^) – mcgrailm

+0

acclamations, j'ai fait ces changements. – Hailwood

Questions connexes