1 - Идея
Идея хороша и, вероятно, может быть использована в профессиональных приложениях, где у вас есть прямой контакт с пользователями, и может объяснить им, как все работает, но не обязательно на общедоступных веб-сайтах, где пользователи не хотят RTFM и просто ищут знакомых поведения. Если это не просто пример упражнения или элемент управления, предназначенный для включения его в контрольный пакет, он нарушает принцип YAGNI ;)
2 - Реализация
Вы, конечно, заметили, что реализация содержит ошибки (по крайней мере, в IE7 и FF3.1B2). Иногда жест над всеми флажками выберет все из них, кроме одного или двух. Перемещение мыши по элементу div над или под списком остановит перетаскивание (я знаю, что это «особенность», но это не очень удобно для пользователя). Я проверил исходный код и, честно говоря, хотя он выглядит довольно аккуратно, я просто не хотел иметь с ним дело, потому что это простой javascript. Разве вы не знаете, что ...
3 - Возможные улучшения
... вы можете писать меньше и делать больше с библиотекой javascript, обычно jQuery . Я бы полностью переписал этот элемент управления как плагин jQuery. Он предоставит вам множество инструментов, которые сделают ваш код намного проще для написания, поддержки и расширения. Просто попробуйте, вам понравится. Это с технической точки зрения. С точки зрения пользователя, постарайтесь сделать свой контроль как можно более знакомым, например, то, что предложила Анжела, проводник окон: красивый прямоугольник выбора, возможность использовать Shit + Click или что-то в этом роде. И, наконец, помните, что для многих пользователей Windows контрольный список «выбран» и «отмечен» - это две разные вещи.