почему, когда я удаляю кнопку html, все еще выполняющую событие onclick?

0

Я пытаюсь создать динамическую кнопку с добавлением команды 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>
Теги:
button
append

1 ответ

0
Лучший ответ

Новая кнопка также запускает событие, потому что вы используете live для привязки события, которое фактически привязано к body и просто слушает цель с именем nuevaLuminaria. Перед тем, как заменить первую кнопку, вызовите die на нее, чтобы удалить слушатель.

  • 0
    спасибо за ваш ответ, это очень помогает мне понять, что происходит, но в конце я просто создал одну кнопку, чтобы сделать то, что мне нужно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню