2016-04-29 2 views
0

У меня есть простое окно с несколькими списками. Я пытаюсь изменить цвет выбранного элемента на опциях в нокауте, не похоже, чтобы найти способ. Пожалуйста помогите. при нажатии на элемент элемент не должен выделяться голубым цветом по умолчанию. Есть ли способ?изменить цвет или выделенный элемент в нескольких списках с помощью knockout.js

Вот мой fiddle

var Customer = function (id, name, expired) { 
     this.id = id; 
     this.customerName = name; 
     //this.expiryDate = expiryDate; 
     this.hasExpired = function() { 
      return expired; 
     }; 
    }; 

    function ViewModel() { 
     var self = this; 
     self.customerRegion = ko.observable(); 
     self.customerName = ko.observable(); 

     self.allCustomers = [new Customer(1, "User1", false), new Customer(2, "User2", true), new Customer(3, "User3", false)] 
     self.selectedCustomer = ko.observable() 

     self.setOptionStyling = function (option, item) { 
      console.log(item.hasExpired()) 
      ko.applyBindingsToNode(option, { 
       css: { 
        expired: item.hasExpired() 
       } 
      }, item); 
     } 
    } 
    ko.applyBindings(new ViewModel()) 

Мой HTML:

<select multiple = "multiple" id="customerSelect" 
      data-bind="options: allCustomers, 
      optionsText: 'customerName', 
      value: selectedCustomer, 
optionsAfterRender: setOptionStyling"" /> 
+0

Я думаю, у вас есть * CSS * проблема, а не проблема knockout.js? Мне кажется, вы хотите изменить стиль отдельных элементов (например, синий фон). Как таковой, кажется, это замалчивание [этого вопроса] (насколько я знаю)? Насколько я знаю, вы не можете сделать это с помощью html/css. Для этого вам понадобится библиотека/виджет выпадающей замены. – Jeroen

+0

Возможный дубликат [Как изменить цвет синего выделения в раскрывающемся списке выбора окна) (http://stackoverflow.com/questions/19388011/how-to-change-colour-of-blue-highlight-on-select-box- падать) – Jeroen

ответ

1

Кажется, что это не возможно, чтобы изменить цвет выделения (или по крайней мере не представляется возможным на легкий путь). Пожалуйста, проверьте этот ответ:

https://stackoverflow.com/a/19388345/3193847