syntaxe avec le tableau associatif
Bonjour,
Pour la suppression un par un des éléments passés en groupe, j'ai utilisé un tableau associatif. Tout fonctionne mais j'ai un problème de syntaxe.
Voici un bout de mon code :
ligne 74, error : itemCollection[count] is undefined
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
function displayItems(idLeftItem,nbItem, array){
/*
* nbItem : size of array
*
* Role : browse an array
*
*/
var table = '<div id="'+idLeftItem+'"><table id="table'+idLeftItem+'">';
$('#rightList').append(table);
for(var i=0; i<nbItem; i++){
$('#table'+idLeftItem).append('<tr id="item'+array[i]['id']+idLeftItem+'"><th id="item'+idLeftItem+'" style="text-align:left; background:#eee; width:80%;">'+array[i]['label']+'</th><th style="width:20%; text-align:right; background:#eee;"><input type="button" value="X" id="del'+array[i]['id']+idLeftItem+'"/></th></tr>');
}
var endTable = '</table></div>';
$('#rightList').append(endTable);
} //end_displayItem
function addPackage() {
//the selected item of leftList
var $leftItem = $('#leftList option:selected');
//id of the left item
var idLeftItem = $leftItem.val();
//toString of the object left item
var textLeftItem = $leftItem.text();
//nb d'option selected
var nbLeftItem = $leftItem.size();
//generated code
var generateRight_1 = '<div id="'+idLeftItem+'"><table><tr style="text-align:center;"><th colspan="5" style="text-align:left; background:#eee;"><b>'+textLeftItem+'</b></th><th colspan="2" style="text-align:right; background:#eee;"><input type="button" value="X" id="del'+idLeftItem+'"/></th></tr><tr height="10"><td></td></tr><tr><td><b>OS :</b></td><td>Win <input type="checkbox" id="checkWin" checked="checked"/></td><td>Lin <input type="checkbox" id="checkLin"/></td><td>Mac <input type="checkbox" id="checkMac"/></td><td>And <input type="checkbox" id="checkWin"/></td><td>iOS <input type="checkbox" id="checkIOS"/></td></tr><tr height="40"><td></td></tr></table></div>';
var count = 0;
var itemCollection = new Array();
//if leftItem has an id
if(idLeftItem){
//if size of selected items > 1
if(nbLeftItem > 1){
//store each item selected in the collection
$leftItem.each(function(){
var item = { "id" : $(this).val(), "label" : $(this).text() };
itemCollection.push(item);
});
displayItems(idLeftItem,nbLeftItem,itemCollection);
}//end_if
}
//Remove a right item IN A BLOCK
$('#del'+itemCollection[count]['id']+idLeftItem).bind("click", function(){
alert("2");
//add to the left list
var generateLeft_2 = '<option value="'+idLeftItem+'">'+itemCollection[count]+'</option>' ;
$('#leftList').append(generateLeft_2);
//remove from the right list
$('tr#'+itemCollection[count]+idLeftItem).remove();
}); |
Merci d'avance.