在jQuery的世界中,delegate()是一個非常有用的方法。它可以在父元素上綁定事件處理程序,代理其子元素的相關事件。例如:
$(document).ready(function() { $('#parent').delegate('#child', 'click', function() { alert("Hello, delegate!"); }); });
在這個例子中,我們綁定了一個click事件處理程序到#parent元素上,并代理了#child元素的相應事件。這意味著相同的click事件處理程序將被應用到子元素#child上。當#child被點擊時,它將觸發委托的處理程序并顯示一條消息。
然而,從jQuery 3.0版本開始,delegate()方法已被棄用。而是推薦使用其后繼者on()代替它。on()方法也有相同的功能,并且可以提供更好的性能和重用性。
$(document).ready(function() { $('#parent').on('click', '#child', function() { alert("Hello, on!"); }); });
從上面的代碼中可以看到,on()方法比delegate()方法更簡潔和優雅。而且,由于它提供的回調函數和參數比delegate()更多,使得它更加靈活易用。
總之,對于新的jQuery版本,官方推薦使用on()方法取代delegate()方法。不過,對于老的代碼,它們并不是兼容的,因此,如果不想改動舊代碼,那么delegate()方法還是可行的選擇。