Javascript jquery动态点击函数

Javascript jquery动态点击函数,javascript,jquery,function,dynamic,Javascript,Jquery,Function,Dynamic,有人能帮我吗? 其思想是创建带有循环的动态按钮,然后使用jqueryclick函数使用其中一个按钮 //I'm creating dynamic buttons like this: for(i=0; i<1000; i++){ $contentBox.append('<button id="add'+ i +'" type="button" class="btn btn-success">Accept</button>'); //but how

有人能帮我吗? 其思想是创建带有循环的动态按钮,然后使用jqueryclick函数使用其中一个按钮

//I'm creating dynamic buttons like this:

for(i=0; i<1000; i++){
    $contentBox.append('<button id="add'+ i +'" type="button" class="btn btn-success">Accept</button>');

    //but how would I create the jquery click function?

    $('#add'+i).click(function(e) {....});

    //this does not create 1000 click functions. It only changes the id to the last one so what ever button you click on you will always get the las id
}
//我正在创建如下动态按钮:

对于(i=0;i您应该对动态按钮单击事件使用live功能。请尝试以下操作

$('#add'+i).live("click", function(){
  // codings
});

如果将
i
放入单击处理程序的
中,它不会将其值固定为创建单击处理程序时的值;相反,它将始终引用变量
i
,当您完成循环时,该变量取值
1000
。也许您可以将
i
存储在按钮的属性中,如下面(或从元素的id中读取)

$contentBox=$('#content');
$result=$(“#result”);

对于(i=0;i@Spencer的评论很重要-您可以使用委派事件。或者,您可以简单地使用button类:

for(i=0; i<1000; i++){
    $contentBox.append('<button id="add'+ i +'" type="button" class="btn btn-success">Accept</button>');

 //Rest of your code
}

//Then attach the event to the class:
$('button.btn-success').click( function(){
//I suspect you'll want the ID so here goes
var buttonID = $(this).attr('id');
//The rest of the fun stuff
});

for(i=0;iYou将希望使用
$(文档)。在('click','add'+i',function(e){…})
上使用动态元素。您可以参考关于的SO文档。我有一个例子专门讨论了向动态元素添加事件处理程序,尽管它从未被接受/删除。无论如何,只需将
$('ul')
更改为
$(文档)
在文档示例中,它可以在任何情况下工作。使用委托。
$(文档)。在(单击:function(){},#add'+i)
1.9以来一直被弃用和删除。你就是那个人。正是我想要的“$(this).attr('data-eyeVal')”