element.$1p( selector ) возвращает первый парент на странице
От: Intriguer  
Дата: 05.01.15 16:31
Оценка:
Таким образом добавляются элементы:
std::pair<double, std::string> res = TransformSize(static_cast<double>(size));
std::string html(
"<div .duplicate-found>"
"<table>"
"<tr>"
"<td><span .checkbox #duplicate-found-check></span></td>"
"<td><span .root-folder></span></td>"
"<td .location-name><span .duplicate-file-name>" + fileName + "</span></td>"
"<td .total><span .duplicate-file-size>" + boost::str(boost::format("%.3f") % res.first)
+ "</span><span>" + res.second + "</span></td>"
"</tr>"
"</table>"
"<ul .tree-lines>");

int elNumber = 0;
for (const auto & line : locations)
{
html += "<li .path-list><span .location-check #locationId" + std::to_string(++elNumber)
+ "></span><span .duplicates-path>" + line.second.string() + "</span></li>";
}

html += "</ul>";
html += "</div>";

rootEl.set_html(reinterpret_cast<const unsigned char*>(html.c_str()), html.size(), SIH_APPEND_AFTER_LAST);
CSS:
.checkbox {
active-on!: self:checked = !self:checked,
self.$1p(div.duplicate-found).$(.location-check)->@(item)(element el = $1(#<item.id>)
, el:checked = self:checked ? true # null);
}
Нужно чтобы при клике на родительский чекбокс — проставлялись все чайлды чекбоксы в списке. В данном случае проставяются все чекбоксы первого элемента когда кликаешь по любому из родительских чекбоксов. Получается, что .$1p возвращает не " returns nearest parent element matching the selector", а просто первый на странице.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.