3
넉 아웃을 배우려고합니다. 행 내의 링크를 클릭 할 때 테이블 행을 강조 표시하려고합니다. this
, e
및 knockout이 JQuery
과 상호 작용하는 방식을 이해하는 데 어려움을 겪고 있습니다. 표준 jquery 함수처럼 녹아웃 함수를 빌드 할 수 있습니까?knockout.js를 사용하여 테이블 행 강조 표시
<table>
<thead>
<tr>
<th></th>
<th>Name</th>
<th>Cat</th>
<th>Size</th>
</tr>
</thead>
<tbody data-bind="foreach: components">
<tr>
<td></td>
<td><a data-bind="text: Name, click: $parent.highlightComponent" href="#"></a></td>
<td data-bind="text: Category"></td>
<td data-bind="text: Size"></td>
</tr>
</tbody>
</table>
그리고 내보기 모델 ...
function MyViewModel() {
this.components = ko.observableArray();
this.selectedComponent = ko.observable();
this.highlightComponent = function(e) {
console.log($(this).parents("tr"));
$(this).closest("tr").siblings().removeClass("diffColor");
$(this).parents("tr").toggleClass("diffColor", e.clicked);
}
}
'IsHighlighted is not'가 나타납니다. 'components'는 서버 측 json에서옵니다. 루프를 반복하고 IsHighlighted 멤버를 추가 할 수 없습니까? – mxmissile
강조 표시를 켜기/끄기 상태로 전환하거나 켜기 (켜기/끄기 상태)해야합니까? ko.utils.arrayForEach (model.components, function (item) {item.IsHighlighted = ko.observable (false);}) 처음 클릭 할 때? – haim770
궁극적으로 나는 전체 테이블에서 오직 하나의 행만 강조 표시되기를 원하기 때문에 다른 행을 클릭하면 이전에 강조 표시된 항목의 강조 표시를 해제해야합니다. – mxmissile