jQuery追加委托

时间:2017-05-26 20:30:35

标签: javascript jquery

Agradezco de su ayuda ... soy nuevo en el tema。

<html>
    <div class="comentarios">
       <button class="comentario-eliminar" value="Eliminar"/> // return success
       <button id="ShowMore" value="new button"/> <-- add: <button class="comentario-eliminar" value="Eliminar"/> return error! -->
     </div> <html>

script
  $('#ShowMore').click(function(){
        $('.comentarios').append('<button class="comentario-eliminar" value="Eliminar"/>');
  });
  $('.comentario-eliminar').click(function(){
     alert('OK');
  });

endscript

al usar追加para agregar el button en la clase comentarios,no hacelafuncióndeeliminar!

2 个答案:

答案 0 :(得分:0)

必须内联:

$('#ShowMore').click(function(){
    $('.comentarios').append('<button class="comentario-eliminar" value="Eliminar"/>');

    $('.comentario-eliminar').click(function(){
        alert('OK');
    });
});

但更好的方法是将事件直接分配给对象(否则事件将在几个&#34;新按钮&#34; -actions之后每个项目被触发多次)

$('#ShowMore').click(function() {
    var obj = $('<button class="comentario-eliminar" value="Eliminar"/>');
    $('.comentarios').append(obj);

    obj.click(function(){
        alert('OK');
    });
});

答案 1 :(得分:0)

您可以使用jQuery(html, attributes)附加活动.remove()

另请注意,#comment上的html节点应以<!--开头,而不是<--

<input type="button">替换为<button>元素。

&#13;
&#13;
$("#ShowMore").click(function() {
  $(".comentarios").append($("<input>", {
    "class": "comentario-eliminar",
    type:"button",
    value: "Eliminar",
    on: {
      click: function() {
        $(this).remove()
      }
    }
  }));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="comentarios">
  <input type="button" class="comentario-eliminar" value="Eliminar" /> 
  <input type="button" id="ShowMore" value="new button" />
  <!-- add: <button class="comentario-eliminar" value="Eliminar"/> return error! -->
</div>
&#13;
&#13;
&#13;