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();
4

4 回答 4

2
init: function() {
    $('.group input:checkbox').bind("click", dte.adjustList);
},
于 2012-06-14T13:38:18.967 回答
0

您只需要根据您的选择器绑定一次。

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

小提琴

于 2012-06-14T13:39:54.740 回答
0

我已经编辑了你的小提琴,我删除了for loop. 这是链接更新小提琴 您只需要绑定一次点击事件。

于 2012-06-14T13:40:14.303 回答
0

您正在多次绑定事件。你可以这样做:

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

编辑了你的小提琴:

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

于 2012-06-14T13:40:16.003 回答