2014-11-06 165 views
1

我有一個表,其中每一行的第一列包含幾個圖標,每一個的一個元素中:jQuery的。點擊()事件停止工作

<a title="[email protected]" class="delete" href="#" data-toggle="modal" data-target="#dialogDeleteUser"> 
    <img alt="delete" src="/recursos/imagenes/iconPapelera.png"> 
</a> 

而且我應該觸發時,jQuery函數該鏈接被點擊:

$(document).ready(function(){ 
    $("a.delete").click(function() { 
     var userEmail = $(this).attr("title"); 
     loadUserDelete(userEmail); 
    }); 

事實是,它的工作了一段時間,正確的,直到我開始加載使用尋呼機小部件,通過Ajax的tablesorter表的內容。

該表加載的很好,但由於某種原因該類不能在該函數內被識別,我不知道爲什麼。

+1

「這」有輸入error..Are你肯定喲意想不到的結束已關閉'});' – 2014-11-06 09:30:02

+1

請確保你關閉了文件準備好功能 – 2014-11-06 09:31:30

回答

4

新的內容你的代碼後加:您可以通過使用委派的事件,在這裏你收聽綁定在事件處理程序註冊已經存在父元素克服這個連接事件運行將不會奇蹟般地知道要重新運行該代碼來設置新元素的處理程序。您可以使用,而不是委託處理:

$("selector for the container of these").on("click", "a.delete", function() { 
    var userEmail = $(this).attr("title"); 
    loadUserDelete(userEmail); 
}); 

現在,click掛在容器中的所有這些環節都在jQuery將調用處理如果點擊通過a.delete元素傳遞途中的容器,而冒泡。 。

5

如果您註冊了一個直接事件偵聽器,那麼它在加載目標內容之前,加載的元素將不會綁定到處理程序。

$('#parent').on('click', 'a.delete', function(){ 
... 
}): 

參考jQuery's documentation for on()

0

有輸入的意外結束error..Are你肯定喲已經關閉$(document).ready功能

$(document).ready(function(){ 
     $("a.delete").click(function() { 
      var userEmail = $(this).attr("title"); 
      loadUserDelete(userEmail); 
     }); 
    }); 
+0

沒有抓住。雖然這可能只是一個複製粘貼錯誤,但並未真正發生在他的代碼中(會引發錯誤)+1給你發現它:) – TheProvost 2014-11-06 09:35:33

2

是可能的代碼去創建對象前槽的功能。嘗試將其附加到父代。

$(document).on("click","a.delete",function() { 
     var userEmail = $(this).attr("title"); 
     loadUserDelete(userEmail); 
    }); 
1

你應該在這樣父控件添加Click事件:

$("#parentControl").on("click", "a.delete", function() { 
    var userEmail = $(this).attr("title"); 
    loadUserDelete(userEmail); 
}); 
0

我也面臨同樣的情況,但通過基本操作,上下文中的「這」總是在變化之後去實現。所以,如果你想用「本」,第一家店是一個變量,然後使用該變量作爲選擇,而使用選擇

var that = $(this); 

that.click(function() { 
    ... 
});