在jQuery中为动态添加的元素添加事件

时间:2014-09-21 18:24:09

标签: jquery

在我的HTML页面中,我动态地在某些操作上添加了一些元素。我已经为这些元素分配了某些类,以便在使用这些控件时应该触发合适的事件。我这样做了:

$(document).ready(function(){      
  $("#btnAddMicroElement").click(function(event,microelement){
        microelement=microelement.replace("'","'");            
        $("#divMicroElements").append("<div class='clsdivmicroelement' style='border-bottom: 2px black solid;'><div><label>Microelement</label><input type='text' class='clstxtmicroelement' value='"+microelement+"'/><input type='button' class='clsbtnmicroelmentadd' value='Add'/></div><div><input type='button' value='Add All' class='clsbtnmicroelementaddall'/></div></div>");
        return false;
  });
  $(".clsbtnmicroelementadd").click(function(){
        alert("its working");
  });
});

在上面给出的代码中,我在btnAddMicroElement的点击事件中向页面添加了一些元素,其中一个是带有类clsbtnmicroelementadd的输入文本。我希望在单击此按钮时执行某些操作。为此,我为这个类编写了click事件处理程序。但它没有被执行。是否允许为动态创建的元素编写事件?请帮我纠正我的代码以使其正常工作。

2 个答案:

答案 0 :(得分:1)

尝试委派您的活动:

$(document).on('click','.clsbtnmicroelementadd',function(){
        alert("its working");
  });

答案 1 :(得分:0)

你的jquery代码不应该在document.ready中 你应该为你的动作添加功能,并通过在html代码中的事件中调用此函数来调用它。 像这样的东西: