2013-11-27 42 views
0

我試圖創建一個帶jQuery指令的動態按鈕追加,但首先我從容器div中刪除內容,這一切發生在單擊圖像時,所以在該事件之後創建的按鈕應該修復las one,但是,問題是按鈕被刪除仍然執行自己的onlcick事件,所以我在瀏覽器中打開了多個窗口。爲什麼當我刪除一個仍然執行onclick事件的HTML按鈕?

我在代碼的下面留下了一些信息,希望有些人可以幫助理解發生了什麼,順便說一下,我不知道爲什麼,但是按鈕是在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> 
+0

[jQuery中刪除事件處理程序的最佳方法?](http://stackoverflow.com/questions/209029/best-way-to-remove-an-event-handler-in-jquery)問題是你沒有刪除事件處理程序。這與HTML不一樣,它是你必須使用的JavaScript事件。 – abc123

回答

0

新的按鈕,因爲你正在使用live的事件,這實際上是綁在body,只是監聽命名nuevaLuminaria目標結合也引發事件。在更換第一個按鈕之前,請先撥打die以刪除偵聽器。

+0

感謝您的回答,它幫助我瞭解發生了什麼,但最終我創建了一個按鈕來完成我所需要的操作。 –

相關問題