2012-01-06 78 views
1

我正在使用jquery(mobile)生成隐藏/显示HTML表格列的选择菜单。如何在动态生成的多选中触发change()?

是这样的:

container = $('<select name="toggleCols" id="toggleCols" multiple="multiple"><option value="default" data-placeholder="true">Edit</option></select>'); 

$('.tableRows').each(function(i) { 
    if ($(this).is(".toggle")) { 
     var toggle = $('<option value="'+i+'">sometext'+i'+</option>'); 
    container.find("#toggleCols").append(toggle); 
    }); 

这将创建选择菜单,其中包含了每种表列一个选项。选择此选项应该隐藏/切换相应的表格列。

但是,我不能得到改变事件火了:如果我使用活(“变化” ...并有10列

$("#toggleCols").change(function(){ 
    console.log("change") 
    // do stuff 
    }) 

,每次都遇到我选择一次10个console.logs一个单一的选择。因此,这也不行。

问题
是否有使用更改,恕不现场,并得到一个单一的console.log的方式?

+1

显示一个_testcase_,而不是您不使用的任意代码片段。 – 2012-01-06 15:25:19

+1

你能帮我们一把小提琴吗? – 2012-01-06 15:26:52

+0

你可能需要绑定或触发事件 – 2012-01-06 15:31:09

回答

0

我应该从添加选项的循环中删除事件绑定。然后使用直播工作正常,只发生一次。