2017-02-19 5 views
0

Я новичок в Knockout и испытываю трудное время, пытаясь решить эту проблему.JQuery Select Equivalent in Knockout Js

Я пытаюсь выполнить эту функцию выбора в нокаут. Когда я выбираю текст, я хочу выделить границу.

https://api.jquery.com/select/

Прямо сейчас, в Knockout, я могу выделить границу, используя щелчок, но когда пользователь выбирает текст непосредственно в текстовое поле, я не в состоянии выделить границу.

Вот html для этого. В этом текстовом поле много чего происходит. Если мой вопрос непонятен, спросите, чтобы я мог лучше объяснить.

<input class="name" type="text" 
 
data-bind="click: function (y, event) { $root.SelectedWay($parent.Way); $root.SelectChild(y, event); $(event.target).select(); }, 
 
typeahead: { 'source': $root.All(), 'sorter': $root.ColorSorter, 'updater': $root.UpdateSelectedColor, 'highlighter': $root.HighlightColor, 'matcher': $root.MatchColor }, 
 
css: { 'selected': Selected }, 
 
value: Name" />

ответ

2

как насчет пользовательского связывания. здесь один, где граница поворачивает красный цвет с помощью JQuery выбери

ko.bindingHandlers.jquerySelect = { 
 
    init: function(element, valueAccessor, allBindingsAccessor) { 
 
    $(element).select(function() { 
 
     $(this).css("border", "5px solid red"); 
 
    }); 
 
    $(element).val(valueAccessor()()); 
 
    }, 
 
    //update the control when the view model changes 
 
    update: function(element, valueAccessor, allBindingsAccessor) { 
 
    $(element).val(valueAccessor()()); 
 
    } 
 
}; 
 

 

 

 
function model() { 
 
    var self = this; 
 
    this.myObservable = ko.observable('hello world'); 
 
} 
 

 
var mymodel = new model(); 
 

 
$(document).ready(function() { 
 
    ko.applyBindings(mymodel); 
 

 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input data-bind="jquerySelect: myObservable" />

+0

Привет, Вы уже можете увидеть входные данные привязки в моем коде. Как добавить эту функциональность в существующую привязку данных – Chatra

+0

, вам просто нужно изменить значение: name на jquerySelect: name. пользовательская привязка заменит привязку вашего значения. –

+0

привет, мне кажется, мне нужно вызвать этот $ root.SelectChild (y, event) в приведенном выше коде. Как я могу назвать это вместо изменения границы на красный. Функция selectchild, о которой я уже упоминал, уже имеет код, который мне нужно сделать. – Chatra