2016-04-29 6 views
0

Ich habe eine einfache Mehrfachliste. Ich versuche, die Farbe des ausgewählten Elements auf Optionen in Knockout zu ändern, scheint keinen Weg zu finden. Bitte helfen. Beim Klicken auf ein Element sollte das Element nicht mit der blauen Standardfarbe hervorgehoben werden. Gibt es einen Weg?Ändern Sie die Farbe oder das ausgewählte Element in mehreren Listenfeldern mit knockout.js

Hier ist mein 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()) 

Mein html:

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

Ich glaube, Sie ein * CSS * Problem haben kein knockout.js Problem? Es scheint mir, dass Sie das Styling ausgewählter Objekte ändern möchten (z. B. den blauen Hintergrund). Als solches scheint es ein Täuschungsmanöver von [dieser Frage] (soweit ich weiß)? Soweit ich weiß, können Sie das nicht mit html/css tun. Sie benötigen dazu eine Dropdown-Ersatzbibliothek/ein Widget. – Jeroen

+0

Mögliches Duplikat von [Wie ändere ich die Farbe der blauen Hervorhebung im Auswahlfeld Dropdown-Menü] (http://stackoverflow.com/questions/19388011/how-to-change-colour-of-blue-highlight-on-select-box- Dropdown-Liste) – Jeroen

Antwort

Verwandte Themen