Хорошо, если кому-то интересно, вот окончательное решение.Это делает следующее: создает событие click для класса DIV, чтобы переключать активный класс по щелчку, а также соотносит каждый DIV с флажком, используя data-id = "X", который = идентификатор флажка.Наконец, если форма перезагружается (в этом случае форму можно сохранить и отредактировать позже), последний фрагмент javascript затем видит, какие флажки отмечены при загрузке страницы, и запускает активный класс для DIV.
Toпосмотрите все это в действии, посмотрите здесь: https://www.worklabs.ca/2/add-new/add-new?itemetype=website (скрипт работает на третьей вкладке, ВЫБЕРИТЕ СТИЛЬ).Однако вы не сможете сохранить / отредактировать его, пока не станете участником, но это работает :) Вы можете показать флажки, используя firebug, и сами установите флажки, чтобы увидеть.
window.addEvent('domready', function() {
// apply the psuedo event to some elements
$$('.thumb').addEvent('click', function() {
this.toggleClass('tactive');
});
$$('.cbox').addEvent('click', function() {
var checkboxes= $$('.cbox');
for(i=1; i<=checkboxes.length; i++){
if(checkboxes[i-1].checked){
if($('c_'+checkboxes[i-1].id))
$('c_'+checkboxes[i-1].id).set("class", "thumb tactive");
}
else{
if($('c_'+checkboxes[i-1].id))
$('c_'+checkboxes[i-1].id).set("class", "thumb");
}
}
});
// Add the active class to the corresponding div when a checkbox is checked onLoad... basic idea:
var checkboxes= $$('.cbox');
for(i=1; i<=checkboxes.length; i++){
if(checkboxes[i-1].checked){
$('c_field_tmp_'+i).set("class", "thumb tactive");
}
}
document.getElements("div.thumb").addEvents({
click: function(e) {
if (e.target.get("tag") != 'input') {
var checkbox = document.id("field_tmp_" + this.get("data-id"));
checkbox.set("checked", !checkbox.get("checked"));
}
}
});
});