Показать сообщение отдельно
  #1 (permalink)  
Старый 02.02.2011, 12:53
Профессор
Отправить личное сообщение для розовый слоник Посмотреть профиль Найти все сообщения от розовый слоник
 
Регистрация: 17.10.2009
Сообщений: 258

массове выделение:)
Добрый день жителям форума
Хочу сделать выделение строчек в таблице через щелчок по checkBox и зажатой клавиши shift(точнее я уже сделал но оно медленно отрисовывает) пример, как выделение писем на ya.ru, gmail.com, mail.ru и другие.

Как я делаю.
Условие для выделения строк через клавишу shift

if(shiftKey == true) {
        var lastElArray = arrayCheckBox.length - 1;
        var firstCheckBox = parseInt(arrayCheckBox[lastElArray]);
        var lastCheckBox = parseInt(input.name);
        var getElTagName = f_a('bHDSTbody_datasheet_T_a').getElementsByTagName('input');
        
        for (vaк i=0;i<getElTagName.length;i++){
            var element = getElTagName[i];
            var nextPosition = parseInt(element.name);
            if(firstCheckBox < lastCheckBox){
                if(element.type == "checkbox" && nextPosition < lastCheckBox && nextPosition > firstCheckBox){
                    addBgColorTableFild(element);
                }
            }else if(firstCheckBox > lastCheckBox){
                if(element.type == "checkbox" && nextPosition > lastCheckBox && nextPosition < firstCheckBox){
                    addBgColorTableFild(element);  
                }
            }
        }
    }


функция addBgColorTableFild просто добавляет к тегам tr класс с нужным мне бекграундом.
Функция f_a() это функция поиска элемента по id(это для понимания кода).

Насколько я понимаю вся проблема из за того, что я прохожусь по всем чек боксом и отбираю из них только те которые мне нужны. Все из за того что я не могу скачать циклу пройтись скажем от firstCheckBox до lastCheckBox из за того, что строчки можно удалять, а атрибут name в них остаются неизменным.

Короче все вот так вот плохо может кто то посоветует или на толкнет на мысль буду признателен
Ответить с цитированием