Вот сценарий, который я использую для добавления поля ввода имени:
<script>
$(document).ready(function() {
$("#add").click(function() {
var someId = document.getElementById('someId').value;
var name = document.getElementById('name').value;
$('.print_box').append('<div class = "' + someId + '"> <tr> <td> <input type = "button" ref = "'+someId+'" class = "remove_button" value = "Remove"></td> <td><input type = "text" multiple name = "name[]" value = "' + name + '" </td> </tr>
});
});
</script>
Теперь я хочу вызвать кнопку удаления из отдельного автономного скрипта, например:
<script>
$(document).ready(function() {
$(".remove_button").click(function() {
var getRemoveID = $(this).attr('ref');
$("." + getRemoveID + "").remove();
});
});
</script>
Но это не работает. Он работает только в том случае, если функция удаления включена с добавлением вроде -
<script>
$(document).ready(function() {
$("#add").click(function() {
var someId = document.getElementById('someId').value;
var name = document.getElementById('name').value;
$('.print_box').append('<div class = "' + someId + '"> <tr> <td> <input type = "button" ref = "' + someId + '" class = "remove_button" value = "Remove"></td> <td><input type = "text" multiple name = "name[]" value = "' + name + '" </td> </tr>
$(".remove_button").click(function() {
var getRemoveID = $(this).attr('ref');
$("." + getRemoveID + "").remove();
});
});
});
</script>
Теперь, как я могу разделить эти 2 функции? я имею в виду вызов кнопки удаления за пределами этого сценария добавления ??
Лучше использовать тег javascript (шаблон) `` вместо использования множества конкатенаций строк.
Это не то, как вы ее решаете. Вы идете не в том направлении. Проблема здесь в том, что вы пытаетесь обрабатывать события для элементов, которые добавляются в DOM динамично.
Таким образом, вам нужно обрабатывать такие события, как (click, mouseover
и т. д.), Для этих элементов таким образом
$(document).on('click', '.remove_button', function(){
//Code to handle that event when click on remove_button
});
Просто используйте on
$("body").on("click", ".button", function() {
alert("click")
});
append в вашем первом скрипте отсутствует закрывающая скобка