我正在使用JavaScript创建动态按钮。但是我无法将<li class="active">分配给按钮onClick。我试图使用jquery分配活动类,但到目前为止还没有成功。我尝试了关于堆栈溢出的尽可能多的解决方案,但对我没有用。

for (var i = 0; i <feature_layer.length ; i++) {
<ul class="nav nav-pills"><a data-toggle="pill" class="mybtn"  style="margin:25px;"  id=' + mapport.selected_feature_layer[i] + '>' + layer_names[i] + '</a></li></ul>';
}
$('.mybtn').click(function() {
    var selected_id =$(this).attr('id');

});

最佳答案

由于按钮是动态创建的,因此您将必须使用事件委托。

$('body').on("click",".myBtn", function(e){
  $(this).addClass("active");
});


这是运行中的代码:



var btn = document.createElement("button");
btn.innerHTML = 'this is a button';
btn.className = 'myBtn';
document.body.appendChild(btn);

$('body').on("click",".myBtn", function(e){
  $(this).addClass("active").text("active");
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

09-13 09:51