Я пытаюсь создать динамическую кнопку с добавлением команды jquery, но сначала я удаляю содержимое из div контейнера, все это происходит при щелчке изображения, поэтому кнопка, созданная после этого события, должна отменить las one, однако, проблема в том, что стираемая кнопка все еще выполняет собственное событие onlcick, поэтому я открываю несколько окон в моем браузере.
я оставляю ниже кода, я надеюсь, что какой-то орган может помочь понять, что происходит, кстати, я не знаю, почему, но кнопка создается внутри тега span в DOM... и затем только внутри контейнера div.
<script>
idDelegacion = 0;
function planoClick(id) {
idDelegacion = id;
$.ajax({
type: 'GET',
contentType: "application/json; charset=utf-8",
url: '@Url.Action("partialViewLuminariasDelegacion","Luminaria")',
data: {
"idDelegacion": idDelegacion
},
datatype: "json",
success: function (data) {
$("#luminariasDelegacion").html(data);
$("#nuevaLuminaria").show();
$("#luminariasDelegacion").show();
$("#nuevaLuminaria").empty();
//$("#nuevaLuminaria").live().ready(function () { $("#nuevaLuminaria").children().children("#btnNuevaLuminaria").remove(); });
$("#nuevaLuminaria").append('<input type="button" value="Nueva Luminaria" id="btnNuevaLuminaria" style="position:relative"/>').button().click(function jsAbreOperacionLuminaria() {
url = "../../Luminaria/Create/?idDelegacion=" + idDelegacion
window.open(url);
});
},
error: function () {
alert('error al traer las luminarias de la delegación ' + idDelegacion)
}
});
}
</script>
Новая кнопка также запускает событие, потому что вы используете live
для привязки события, которое фактически привязано к body
и просто слушает цель с именем nuevaLuminaria
. Перед тем, как заменить первую кнопку, вызовите die
на нее, чтобы удалить слушатель.