2015-06-10 5 views
0

Я хочу, чтобы изменил CSS элемента после его перетаскивания (afterMove event) в контейнер, используя библиотеку сортировки с нокаутом. Я пытался получать идентификатор DIV, содержащий элемент и изменение его CSS в afterMove события как:Изменение CSS элемента в после Перемещение события Knockout sortable

document.getElementById('container').style.backgroundColor="yellow";

Приведенный выше код не меняет цвет перемещаемого элемента, но самый первый элемент в наблюдаемой массив элементов. Я прикрепил скрипач JS к текущей ситуации. Является ли это способом доступа к идентификатору div элемента, который был перемещен, так что изменяется только css этого конкретного элемента?

Attached JS fiddler

+0

Если вы переместите bobby на другой стол, вы хотите изменить цвет на желтый? или объяснить с функциональной точки зрения. cheers –

+0

попробуйте это и дайте мне знать http://jsfiddle.net/supercool/UdXr4/843/. только имя бобби имеет красный цвет, если это таблица1, если вы попытаетесь переместиться на другой стол, цвет бобби изменится на желтый –

+0

@supercool Да! Я пытаюсь изменить цвет на желтый из перемещенного элемента. Итак, если я переведу Бобби на другой стол, он должен измениться на желтый. Обновлен скрипт, о котором идет речь. – codeslayer1

ответ

1

Добавить перемещенную собственность своих студентов

var Student = function(id, name, gender) { 
    this.id = id; 
    this.name = ko.observable(name); 
    this.gender = gender; 
    this.moved = ko.observable(false); 
}; 

Bind CSS для элементов, чтобы использовать его:

<div id="container" style="background-color: white; margin:4px;"> 
    <p data-bind="text: name, css:{two:moved}"></p> 
</div> 

Установите свойство после переезда:

this.updateLastAction = function(arg) { 
    arg.targetParent()[arg.targetIndex].moved(true); 
}; 

http://jsfiddle.net/UdXr4/846/