Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么当我删除一个仍在执行onclick事件的html按钮时?_Javascript_Jquery_Html_Button_Append - Fatal编程技术网

Javascript 为什么当我删除一个仍在执行onclick事件的html按钮时?

Javascript 为什么当我删除一个仍在执行onclick事件的html按钮时?,javascript,jquery,html,button,append,Javascript,Jquery,Html,Button,Append,我试图用jquery指令append动态创建一个按钮,但首先我从container div中删除了内容,这一切都是在单击图像时发生的,因此在该事件之后创建的按钮应该重新绘制las按钮,然而,问题是被擦除的按钮仍在执行自己的onlcick事件,所以我在浏览器中打开了多个窗口 我把代码放在下面,我希望有人能帮助理解发生了什么,顺便说一下,我不知道为什么,但是按钮是在DOM中的span标记中创建的。。。然后就在div容器内 <script> idDelegacion = 0;

我试图用jquery指令append动态创建一个按钮,但首先我从container div中删除了内容,这一切都是在单击图像时发生的,因此在该事件之后创建的按钮应该重新绘制las按钮,然而,问题是被擦除的按钮仍在执行自己的onlcick事件,所以我在浏览器中打开了多个窗口

我把代码放在下面,我希望有人能帮助理解发生了什么,顺便说一下,我不知道为什么,但是按钮是在DOM中的span标记中创建的。。。然后就在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>

idDelegacion=0;
函数平面单击(id){
idDelegacion=id;
$.ajax({
键入:“GET”,
contentType:“应用程序/json;字符集=utf-8”,
url:'@url.Action(“partialviewluminariasdeligacion”,“Luminaria”),
数据:{
“idDelegacion”:idDelegacion
},
数据类型:“json”,
成功:功能(数据){
$(“#luminariasDelegacion”).html(数据);
$(“#nuevaLuminaria”).show();
$(“#LuminariaseLegacion”).show();
$(“#nuevaLuminaria”).empty();
//$(“#nuevaLuminaria”).live().ready(函数(){$(“#nuevaLuminaria”).children().children(“#btnNuevaLuminaria”).remove()});
$(“#nuevaLuminaria”).append(“”).button()。单击(函数jsAbreOperacionLuminaria(){
url=“../Luminaria/Create/?idDelegacion=“+idDelegacion”
窗口打开(url);
});
},
错误:函数(){
警报('delegación灯具错误'+idDelegacion)
}
});
}

新建按钮也会触发事件,因为您正在使用
live
绑定事件,该事件实际上绑定到
正文
,只侦听名为
nuevaLuminaria
的目标。在更换第一个按钮之前,请在其上调用
die
以删除侦听器。

问题的可能重复之处在于您没有删除事件处理程序。这与HTML不同,这是一个JavaScript事件,您必须遵守。感谢您的回答,这对我了解发生了什么有很大帮助,但最后我只创建了一个按钮来完成我需要的操作。