У меня есть следующий код:Нокаут: Обработка событий на Foreach элементов
<div id="resultlist" data-bind="foreach: content">
<ul style="list-style-type:none;">
<li>
<div class="result" data-bind="event:{ mouseover:myfunction, mouseout:myFunction2}">
<div class ="resultlisticoncontainer">
<div class="resultcontenttypeIcon myclassHidden" data-bind="css: { myclassVisible: newClass() == true, myclassHidden: newClass() == false }">
<object id="contentIcon" data="img/File_Icon_24x24.svg" type="image/svg+xml" width="100%" height="100%"></object>
</div>
<div class="resultcontenttypeIcon myclassHidden" data-bind="css: { myclassVisible: newClass() == true, myclassHidden: newClass() == false }>
<object id="marple" data="img/Glass_Icon_24x24.svg" type="image/svg+xml" width="100%" height="100%"></object>
</div>
</div>
<p><span data-bind="text: name" class="filenamestlye"></span></p>
<p><span data-bind="text: file_path" class="urlstyle"></span></p>
<p><span data-bind="html: highlight" ></span></p>
</div>
</li>
</ul>
</div>
Так что я хочу сделать, это, когда я поставил мышь на DIV с «результат» класса, дивы с классом " resultcontenttypeIcon "должен стать видимым. Это прекрасно работает, но проблема в том, что это происходит с каждым дочерним элементом div, созданным с помощью цикла foreach. Так что я хочу, что только дочерние div наведенного div становятся видимыми, так что наведение на событие не запускается для каждого div. Я думаю, проблема в том, что значение newClass становится истинным для всей модели viewmodel.
Это мой ViewModel код:
function ItemListViewModel() {
newClass= ko.observable(true);
myfunction = function() {
newClass(true);
},
myFunction2= function(){
newClass(false);
},
}
ko.applyBindings(new ItemListViewModel());
Вы считали, что используете только CSS: классы hover, чтобы скрыть/показать результат? Это было бы проще и быстрее. – Quango
Спасибо, что делает трюк. Я дал «результат» div: hover .resultcontenttypeIcon {display: block; } style и resultcontenttypeIcon отображение стиля: none ;. Поэтому, если я нахожу «результат», отображается дочерний div. – AKR