Internet explorer 8 jQuery 1.4.2在doropdown列表的更改事件上使用.delegate()

Internet explorer 8 jQuery 1.4.2在doropdown列表的更改事件上使用.delegate(),internet-explorer-8,internet-explorer-7,jquery,jquery-1.4,Internet Explorer 8,Internet Explorer 7,Jquery,Jquery 1.4,我的问题是,我不确定如何在以下场景中使用.delegate: 我们的应用程序有一个投票系统,可以添加几轮或几步。每次添加新步骤时,都会有一个选项列表,定义如何赢得回合/步骤 <select class="listOfOptions"> <option value="U">Unanimous</option> <option value="M">Majority</option> <option value="C" class="

我的问题是,我不确定如何在以下场景中使用.delegate:

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


<select class="listOfOptions">
<option value="U">Unanimous</option>

<option value="M">Majority</option>
<option value="C" class="customOption"># of votes…</option>
</select>

此代码在除IE之外的所有其他浏览器上都能完美运行

在这种情况下,如何使用上的.delegate()替换.live?


谢谢。

对于这种特殊情况,这将是与.delegate()一起使用的语法。请注意,“ListoOptions”是下拉列表的类


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

它在所有浏览器中都很有魅力。

不要忘记在
$(function(){})中编写委托块或在
$(文档).ready(函数(){})中

否则在IE7-9中就不起作用了


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