2012-06-14 2 views
0

У меня есть скрипка здесь: my fiddle. Я пытаюсь создать список элементов из отдельной группы списков. Я не могу показаться, чтобы получить представление о том, что я делаю неправильно, но вот случается:Создайте список из избранных элементов списка

  1. У меня есть группа списков основываясь на табличных данных
  2. Каждый список имеет имя столбца и выбор флажок
  3. Если выбрать элемент, он должен быть добавлен в выбранной области колонн (вертикальный список)
  4. Есть 14 уникальных табличные элементы с флажками
  5. (ПРОБЛЕМА ->) Когда я выберите вещь, она добавляется 14 раз в выбранной секции колонны

код

(HTML):

Я пытался вставить HTML ти, но не работает правильно. Посмотрите на скрипку, указанную выше.

(JQuery):

var dte = // drag table elements 
{ 
init: function() { 
    var chkbx = $('.group input[type="checkbox"]:checkbox'); 
    //var chkbx = $('#accordion'); 
    for (var i = 0, ii = chkbx.length; i < ii; i++) { 
     $(chkbx).bind("click", dte.adjustList); 
    } 
}, 

adjustList: function(event) { 
    var list = []; 
    var str = ''; 
    var eleval = event.currentTarget.value; 
    var eleid = event.currentTarget.id; 
    if (eleval == 1) { 
     list.push(eleid); 
     str = '<li>' + eleid + '</li>'; 
    } 
    $('#vertical ul').append(str); 
/* 
    //var ele = event.currentTarget.id; 
    var allVals = []; 
    var str = ''; 
    //var obj = $("#"+ele); 
    var ele = $('#accordion'); 
    $(obj+': checked').each(function(){ 
     allVals.push($(this.val())); 
     dte.list.push($(this.val())); 
     str += '<li>'+$(this.val())+'</li>'; 
    }); 
    $('#verticle').text(str); 
    alert('List: ' + toString(list)); 
    */ 
} 
}; 
dte.init(); 
+0

http://jsfiddle.net/deerua/LxwLf/1/ – deerua

+0

$ ('группа ввода: флажок') == $ ('. group input [type = "checkbox"]') – deerua

ответ

2
init: function() { 
    $('.group input:checkbox').bind("click", dte.adjustList); 
}, 
+1

Это первый и лучший ответ. +1 – Imdad

+0

Как всегда, я всегда думаю о проблеме. Спасибо за вашу помощь. Это сделало трюк – radi8

+0

сделать ответ «принятым», – deerua

0

вам нужно только связать один раз на основе вашего выбора.

init: function() { 
     var chkbx = $('.group input[type="checkbox"]:checkbox'); 
     $(chkbx).bind("click", dte.adjustList); 
}, 

fiddle

0

Я отредактировал скрипку, я удалил for loop. Вот ссылка updated fiddle Вам нужно всего лишь связать событие click один раз.

0

Вы связываете события несколько раз. Вы можете сделать что-то вроде этого:

init:function(){ 
    $('.group input[type="checkbox"]:checkbox').bind('click',dte.adjustList); 
}, 

отредактировали скрипку:

http://jsfiddle.net/emphaticsunshine/tPAmc/

Смежные вопросы