JQuery : (this) przy przycisku

0
	// ##### Obsługa ADD button
		$('#add').on("click", function()
		{
			let quantity = $('#quantity').val();
			if( quantity == "" || quantity < 1)
			{
				alert("Please select product and enter number of licenses.")
			}
			else
			{
				let licence = $('#choose_licence  option:selected').html();
				let added_html_div = '' +
					'<div class="input-group input-group-sm mb-1">'+
					  '<div class="input-group-prepend">'+
					    '<span class="input-group-text input-group-text-1 bg-light" id="inputGroup-sizing-sm">' + licence + '</span>'+
					  '</div>'+
					  '<input type="text" class="form-control"  aria-describedby="inputGroup-sizing-sm" name="' + licence + '" required value="' + quantity + '">'+
					'<input type="submit" class="rem btn btn-danger btn-sm" id="del" value="DEL">'+
					'</div>';
				$('#dodawane_produkty').append(added_html_div);

				$('#quantity').val("");
				$('#choose_licence').prop('selectedIndex', 0);
				$('#add').prop("disabled", true);
				// $('.rem').on("click", function()
				// {
				// $(this).parent().remove();
				// });
			}
		}); // close $('#add').on("click", function()

		// ##### Obsługa REM button
		$('.rem').on("click", function()
		{
		$(this).parent().remove();
		}); // close $('.rem').on("click", function()

screenshot-20191015094513.png

Div (z nazwa licencji , iloscia i przyciskiem DEL) pojawia sie po dodaniu przez ADD
Jesli kod obsługi DEL jest w ciele kodu ADD to przycisk działa , jeśli wyjmę go poza ADD to przestaje działać.
DEL odnosi się do this.parent(diva w ktorym jest)
struktura ktora tworzy sie za pomoca ADD :

<div class="input-group input-group-sm mb-1">
   <div class="input-group-prepend">
   <span class="input-group-text input-group-text-1 bg-light" id="inputGroup-sizing-sm">EuroDrewno 1 EN</span>
   </div>
   <input type="text" class="form-control" aria-describedby="inputGroup-sizing-sm" name="EuroDrewno 1 EN" required="" value="1">
   <input type="submit" class="rem btn btn-danger btn-sm" id="del" value="DEL">
</div>

wiec przycisk DEL gdziekolwiek go wywolam powinien usunac diva


a nie działa jesli wyjmę kod obsługi DEL poza ciało kodu ADD</p>

czemu ?

1

JQuery ma problem z dynamicznie renderowanymi elementami i nasłuchem na nie. Generalnie jeśli wstawiasz HTML jakimś jaxem czy funkcjami z JS to musisz skorzystać z funkcji .on więcej tutaj
https://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements

1 użytkowników online, w tym zalogowanych: 0, gości: 1