Вы идете в правильном направлении, $$
возвращает массив, и вам нужно установить наблюдателя для каждого из них.Один из аккуратных способов выглядит следующим образом:
$$('.genre_checkbox input').invoke('observe', 'click', function () {
...
Однако его можно улучшить, воспользовавшись броузером событий браузера .Вам понадобится один общий родительский элемент из всех входных данных:
<div id="genre_options">
<span class="genre_checkbox"><input type="checkbox" /> All Genres<br /></span>
<span class="genre_checkbox"><input type="checkbox" /> Alternative<br /></span>
<span class="genre_checkbox"><input type="checkbox" /> Blues<br /></span>
</div>
Тогда javascript будет проще:
$('genre_options').on('click', 'input', function() {
...
Преимущество заключается в добавлении только одного события, что экономит времяи генерируется только одна функция, сохраняющая память.Кроме того, немного быстрее получить элемент по его идентификатору, а не по имени класса, не намного, но это приятно знать.