2014-01-07 61 views
1

我試圖編輯這個腳本來使用jQuery 1.9.1標準進行安撫,但它仍然不起作用。我的代碼是低於我將jQuery升級到了1.9.1,但我遇到了一個腳本問題

$(document).on('each', 'a.delete', function(index, element) { 
    $(element).click(function() { 
     alert('here'); 
    }); 
}); 

它只是不會在控制檯中沒有錯誤的工作。但是如果我刪除on方法,我已經在1.3.2版本上工作了。

+0

您收到了哪些錯誤? – thomaux

+0

你想要迭代'a.delete'元素嗎?嘗試'$('a.delete')。each(function(){...});' –

+0

我沒有收到任何錯誤。它只是不工作@Anzeo – Jaido

回答

3

試試這個

$('a.delete').each(function(index, element) { 
    $(element).click(function() { 
     alert('here'); 
    }); 
}); 

爲了簡化你的代碼

$('a.delete').on('click',function() { 
    alert('here'); 
}); 

如果他們被動態地創建,然後嘗試

$(document).on('click','a.delete',function() { 
    alert('here'); 
}); 
+0

它不工作。 a.delete元素通過ajax調用在頁面上創建。但在1.3.2使用之前,我用現場方法 – Jaido

+0

我不知道爲什麼它不工作。這只是令我感到沮喪 – Jaido

+0

檢查更新的代碼 –

0

試試這個:

$(document).ready(function(){ 
    $("a.delete").click(function(){ 
     alert("here"); 
    }); 
)}; 
1

不需要遍歷所有錨標記,您可以通過定位錨標記的類來使用事件委託,如下所示。這是更高效,更少的代碼和最佳實踐。

$('a').on('click','.delete', function() { 
    alert('here'); 
}); 
0

有沒有語法錯誤,但你的代碼不工作,因爲each是不是從一個函數處理一個有效的事件;所以它永遠不會被解僱。

您可以使用jQuery on

附加一個事件處理函數的一個或多個事件的 選中的元素。

並將點擊處理程序附加到所有匹配的元素。

代碼:

$('a.delete').on('click',function() { 
    alert('here'); 
}); 

演示:http://jsfiddle.net/IrvinDominin/67DNx/

或者,如果你的元素被動態地添加你可以使用事件委派:

大多數瀏覽器事件泡沫,或傳播,從 最深的元素(事件目標)在它們出現的文檔中 一直到body和document ele換貨。在互聯網 資源管理器8及更低版本中,一些事件(如更改和提交不是 本機泡泡,但jQuery修補這些泡泡並創建 一致的跨瀏覽器行爲。

如果選擇符省略或爲空,則該事件處理程序被稱爲 直接或直接綁定。每次在所選元素上發生事件 時,都會調用處理程序,無論它是直接發生在 元素還是來自後代(內部)元素的氣泡。

當提供選擇器時,事件處理程序被稱爲 委託。當事件直接發生在綁定元素的 上時,不會調用處理函數,但僅對於 與選擇器匹配的後代(內部元素)。 jQuery將事件從事件目標 中的事件冒泡到處理程序所附的元素(即,最內層到最外層元素 ),併爲匹配選擇器的路徑上的任何元素運行處理程序。

代碼:

$(document).on('click', 'a.delete', function() { 
    alert('here'); 
}); 

演示:http://jsfiddle.net/IrvinDominin/67DNx/1/

0

最後,我已經能夠解決這個問題。以一種非常簡單的方式。雖然我從某些帖子中獲得了一些對我來說並不完美的想法。

$(document).on('click','a.delete',function() { 
      alert('here'); 
});