2015-01-30 2 views
0

Я пытаюсь добавить кнопку удаления, но, к сожалению, эта кнопка удалена из функции addRow, которая не работает. Я понятия не имею, что мне не хватает.Добавление кнопки удаления с помощью функции jquery

<script type="text/javascript"> 

    $(document).ready(function() { 
     $('.deleteRowButton').click(DeleteRow); 
    }); 
    function DeleteRow(){ 
     $(this).closest('tr').remove(); 
    } 
    $(function() { 
     //$("#addRow").click(function() 
     $(document).on("click", "#addRow", function(){ 
      $('#container tr:last').after('<tr>\n\ 
      <td><select name="materialID[]" ><option value="0">Select A Material</option><?php echo str_replace("'", "\\'", $options); ?></select></td>\n\ 
      <td>Quantity: <input type="text" name="qty[]" /></td>\n\ 
      <td><select name="SupplierID[]" ><option value="0">Select A Supplier</option><?php echo str_replace("'", "\\'", $options2); ?></select></td>\n\ 
      <td><button class="deleteRowButton" type="button">Remove</button></td>\n\n\ 
     </tr>'); 
     }); 
    }); 

</script> 

ответ

0

Как вы добавляете ваш HTML динамически, то событие не будет в добавленной кнопке, потому что события были прикреплены в кнопках, которые были на странице, когда документ был готов, и не будет прикрепляться к новым кнопкам.

Попробуйте вместо этого:

$(document).ready(function() { 
    $(document).on('click', '.deleteRowButton', function() { 
     $(this).closest('tr').remove(); 
    } 
} 

Дайте ему попробовать и дайте мне знать, если это помогает!

0

Начальное назначение функции DeleteRow с помощью jQuery выполняется против всего на странице в то время. Когда вы добавляете новую строку, присваивание не добавляется к этому конкретному (новому) элементу, как никогда ранее.

Чтобы заставить его работать, вам нужно будет добавить событие on-click или повторно запустить jQuery, чтобы добавить событие в классы .deleteRowButton, чтобы все его новые.

+0

кнопку <класс = тип "deleteRowButton" "Кнопка" => Удалить
Кнопка Дополнительно пункт <входной тип = "submit" id = "gobutton" name = "additem" value = "Order" /> – Misuk

+0

Извините, не могу добавить полный код, вы имеете в виду этот код – Misuk

+0

Где вы запускаете «$ ('. deleteRowButton'). DeleteRow); ", это делается только с тем, что было на странице в то время. Любые новые элементы будут нуждаться в добавлении к ним обработчика событий либо явным «onclick», добавленным к кнопке, либо бит jQuery, запущенный снова, чтобы все классы deleteRowButton имели на них событие – gabe3886

Смежные вопросы