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中运行。