2010-01-13 80 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