從jQuery 1.7開始,.live
已被棄用,替換爲.on
。但是,我很難讓jQuery .on
與event.preventDefault();
一起使用。在下面的示例中,單擊錨標籤會將我帶到鏈接頁面,而不是阻止遵循鏈接的默認瀏覽器操作。event.preventDefault();沒有在jQuery中使用.on
jQuery('.link-container a').on('click', function(event) {
event.preventDefault();
//do something
});
然而,同樣的代碼.live
作品沒有任何的毛病。
jQuery('.link-container a').live('click', function(event) {
event.preventDefault();
//do something
});
我使用的jQuery版本1.7.1目前與Wordpress 3.3.1一起發貨。我在這裏弄錯了什麼?
THX一個明確的解釋。你的例子工作。但是,頁面加載期間唯一可用的父容器至少有3個級別,並且此嵌套結構中還有其他定位標記。你的例子開始影響其他的錨標籤,我不打算這樣做。應該做些什麼以避免相同? – John 2012-02-20 10:34:44
通過爲定位標記指定單獨的類來完成此操作。 – John 2012-02-20 11:07:30
這是一個解決方案,另一個是繼續在第二個參數中的選擇器,即,而不是使用$('#container')。on('click','a')',您可以使用更具體的選擇器,像'$('#container')。on('click','.someContainer .link-container a')'。但是,使用一個類只是丹迪:) – 2012-02-20 13:50:10