Jquery在Knockout Js中选择等效

时间:2017-02-19 20:56:02

标签: javascript jquery knockout.js

我是Knockout的新手,并且很难解决这个问题。

我正在尝试在Knockout中完成此选择功能。当我选择文本时,我想突出显示边框。

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

现在,在Knockout中,我可以使用点击突出显示边框,但是当用户直接在文本框中选择文本时,我无法突出显示边框。

这是html。该文本框中有很多内容。如果我的问题不明确,请询问,以便我能更好地解释。



SELECT ... 
FROM  sys_user LEFT JOIN 
      core_company ON sys_user.company = core_company.sys_id 
WHERE core_company.city = 'London'




1 个答案:

答案 0 :(得分:2)

如何自定义绑定。这里是使用jquery select

将边框变为红色的边框

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" />