Показать сообщение отдельно
  #1 (permalink)  
Старый 26.02.2013, 23:00
Новичок на форуме
Отправить личное сообщение для angek Посмотреть профиль Найти все сообщения от angek
 
Регистрация: 26.02.2013
Сообщений: 9

Интересная задача: CheckBox + Span
Доброго времени суток.
Столкнулся недавно с интересной задачей, и все никак не могу решить ее.
Задание заключается в наделении прав доступа при создании сообщества. Есть три уровня доступа:
1- участник сообщества
2- подписчик
3- пользователь не состоящий в сообществе.

http://clip2net.com/s/2SEVi


Если активны чекбоксы первого уровня, то соответсвующие чекбоксы 2-го уровня могут нажиматься, если чекбоксы 1 уровня не активны, то нельзя выбрать чекбоксы 2-го. Также если активный чекбокс 2-го уровня, то можно выбрать соответсвующий чекбокс 3-го уровня и наоборот.

Так же доступы 1-го уровня имеют свои условия: если не активны чекбоксы в блоке "Посмотреть", то нажать на чекбокс в блоке "Добавить" нельзя. Если чекбокс активний в блоке "Посмотреть" то чекбокс в блоке "Добавить" можно сделать активным.

Проблема в том, что верстальщик сверстал чекбоксы так, что они срабатывают при нажатии на span и я не могу чекбоксу дать свойство disabled, так как всеравно чекбокс срабатывает при клике на span:
<div class="society_unit_top">
            <h4>Участник сообщества</h4>
            <div class="society_member_block_1">
              <div class="fieldwrapper_7">
                <label>Открыть доступ к просмотру:</label>
                <div class="thefield_8">
                  <div class="checkbox_1"><span class="niceCheck">
                    <input type="checkbox" name="member[p]" checked="checked" value='1'/>
                    </span>Пост</div>
                  <div class="checkbox_1"><span class="niceCheck">
                    <input type="checkbox"  name="member[f]" checked="checked" value='1'/>
                    </span>Фотографии</div>
                  <div class="checkbox_1"><span class="niceCheck">
                    <input type="checkbox"  name="member[v]" checked="checked" value='1'/>
                    </span>Видеозаписи</div>
                </div>
              </div>
            </div>
            <div class="society_member_block_2">
              <div class="fieldwrapper_7">
                <label>Открыть доступ к добавлению:</label>
                <div class="thefield_8">
                  <div class="checkbox_1"><span class="niceCheck">
                    <input type="checkbox" name="member[ap]" checked="checked" value='1'/>
                    </span>Пост</div>
                  <div class="checkbox_1"><span class="niceCheck">
                    <input type="checkbox" name="member[af]" checked="checked" value='1'/>
                    </span>Фотографии</div>
                  <div class="checkbox_1"><span class="niceCheck">
                    <input type="checkbox" name="member[av]" checked="checked" value='1'/>
                    </span>Видеозаписи</div>
                </div>
              </div>
            </div>

jQuery(document).ready(function(){

jQuery(".niceCheck").mousedown(
/* при клике на чекбоксе меняем его вид и значение */
function() {

     changeCheck(jQuery(this));
     
});


jQuery(".niceCheck").each(
/* при загрузке страницы нужно проверить какое значение имеет чекбокс и в соответствии с ним выставить вид */
function() {
     
     changeCheckStart(jQuery(this));
     
});

                                        });

function changeCheck(el)
/* 
	функция смены вида и значения чекбокса
	el - span контейнер дял обычного чекбокса
	input - чекбокс
*/
{
     var el = el,
          input = el.find("input").eq(0);
   	 if(!input.attr("checked")) {
		el.css("background-position","0 13px");	
		input.attr("checked", true);
		input.attr("value", '1');

	} else {
		el.css("background-position","0 0");	
		input.attr("checked", false);
		input.attr("value", '0');
	}
     return true;
}


Подскажите в каком направлении копать, какие у кого есть мысли?
Изображения:
Тип файла: jpg 1.jpg (52.5 Кб, 5 просмотров)
Ответить с цитированием