2010-01-13 36 views
0

我不能为我的生活弄清楚你将如何做到以下几点:结合事件 - 事件处理程序传递

$("select").change(function() { 
    var cb = $(this).parent().next().find("input[type=checkbox]"); 
    $(this).val().length > 0 ? cb.attr('checked', true) : cb.attr('checked', false) 
}); 
$("input[type=text]").keyup(function() { 
    var cb = $(this).parent().next().find("input[type=checkbox]"); 
    $(this).val().length > 0 ? cb.attr('checked', true) : cb.attr('checked', false) 
}); 

作为一个功能。真的不喜欢重复,特别是当他们做同样的事情时。

我的jQuery jedi技能不适合这种情况。

回答

2

你先声明函数:

function myFunc() { 
    var cb = ... 
} 

然后添加分配:

$('select').change(myFunc); 
$('input[type=text]').keyup(myFunc); 
+0

太容易了。我失败了,因为我在做'$('select')。change(myFunc())'我相信。感谢你乡绅! – Kezzer 2010-01-13 11:49:56

+2

啊,是的。那会立即执行myFunc并尝试将myFunc的*返回值传递给更改监听器。 – 2010-01-13 11:52:43

+0

很高兴知道原因,非常感谢:) – Kezzer 2010-01-13 11:55:07