jQuery 1.4.2对doropdown列表的更改事件使用.delegate()

我的问题是我不知道如何使用.delegate来实现以下场景:

我们的应用程序有一个投票系统,可以添加几个轮次或步骤。 每次添加新步骤时,都会有一个选项列表,用于定义如何赢取回合/步骤。

 Unanimous 
Majority
# of votes…

现在,当选择一个选项时,将运行以下代码

 $(document).ready(function() { $('.listOfOptions').live('change', function() { if ($(this).find(':selected').attr('class') == 'customOption') { // DO SOMETHING!! } else { // DO SOMETHING ELSE } }); }); 

此代码在IE以外的所有其他浏览器上运行完美。

在这种情况下,我如何使用.delegate()作为.live的替代品?

谢谢。

这将是.delegate()用于此特定情况的语法。 请注意,’listOfOptions’是下拉列表的类。

 $('body').delegate('.listOfOptions', 'change', function() { if ($(this).find(':selected').attr('class') == 'customOption') { // DO SOMETHING!! } else { // DO SOMETHING ELSE } }); 

它在所有浏览器中都像魅力一样。

不要忘记在$(function() {});编写委托$(function() {}); 阻止或在$(document).ready(function() {});

否则它将无法在IE 7-9中运行。