2 item_picked et picker doivent seulement etre voisins
4 <ul class='item_picked'>..</ul>
7 <xx class='item_picker'>
8 <div class='picker_bouton'>..</div>
15 jQuery(document
).ready(function(){
16 var picked
= jQuery('ul.item_picked');
18 picked
.find('>li').removeClass('last').find('li:last').addClass('last');
22 jQuery
.fn
.picker_toggle = function(){
23 var browser
= jQuery(this).parents('.item_picker').find('.browser');
24 if (browser
.is(':visible')){
25 if (jQuery
.browser
.msie
)
29 jQuery('a.close',this).hide();
30 jQuery('a.edit',this).show();
34 jQuery('a.close',this).show();
35 jQuery('a.edit',this).hide();
39 // stop animation du bloc cible pour faire patienter
40 jQuery
.fn
.stopAnimeajax = function(end
) {
41 this.children().css('opacity', 1.0);
42 this.find('.image_loading').html('');
43 return this; // don't break the chain
46 jQuery
.fn
.item_pick = function(id_item
,name
,title
,type
){
47 var label_supprimer
= (typeof selecteur_label_supprimer
!= 'undefined') ? selecteur_label_supprimer
: 'del';
48 var picker
= this.parents('.item_picker');
49 var picked
= picker
.siblings('ul.item_picked');
51 picker
.before("<ul class='item_picked'></ul>");
52 picked
= picker
.siblings('ul.item_picked');
54 var select
= picked
.is('.select');
55 var obligatoire
= picked
.is('.obligatoire');
59 jQuery('li.on',picked
).removeClass('on');
60 var sel
=jQuery('input[value="'+id_item
+'"]',picked
);
62 picked
.addClass('changing').animeajax();
63 // simulons de la latence pour l'oeil de l'utilisateur
64 setTimeout(function(){
65 jQuery('li:last',picked
).removeClass('last');
66 picked
.append('<li class="last on '+type
+'">'
67 +'<input type="hidden" name="'+name
+'[]" value="'+id_item
+'"/>'
69 +((select
&&obligatoire
)?"":" <a title='"+label_supprimer
+"' href='#' onclick='jQuery(this).item_unpick();return false;'>"
70 +"<img alt='"+label_supprimer
+"' src='"+img_unpick
+"' /></a>"
72 +'<span class="sep">, </span></li>').removeClass('changing').stopAnimeajax();
73 // masquer le selecteur apres un pick
74 picker
.find('.picker_bouton').picker_toggle();
78 sel
.parent().addClass('on');
79 return this; // don't break the chain
81 jQuery
.fn
.item_unpick = function(){
82 var picked
= this.parents('ul.item_picked');
83 var me
= this.parent();
84 jQuery(me
).fadeOut('fast');
85 setTimeout(function(){
87 picked
.find('>li').removeClass('last').find('li:last').addClass('last');