Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用knockoutJS设置用于悬停和聚焦的css类_Javascript_Jquery_Css_Jquery Ui_Knockout.js - Fatal编程技术网

Javascript 如何使用knockoutJS设置用于悬停和聚焦的css类

Javascript 如何使用knockoutJS设置用于悬停和聚焦的css类,javascript,jquery,css,jquery-ui,knockout.js,Javascript,Jquery,Css,Jquery Ui,Knockout.js,我终于找到了一种方法,使jQueryUIButtonset能够使用knockout“工作”。 事实上,我一直在模仿它。添加所有默认类是一回事,但我不得不认为应该有一种更简单的方法来解决悬停和聚焦问题 我试过了,但没用。 不知何故,所有的类都被撤销了 HTML: 在这里拉小提琴: 我的问题:有没有一种设置css类“ui状态悬停”和“ui状态焦点”的方法比使用我的按钮单独方法更简单?我认为最好的简化方法是将格式化按钮移动到模型中: 所以按钮得到了一个模型 FormatButton = functi

我终于找到了一种方法,使jQueryUIButtonset能够使用knockout“工作”。 事实上,我一直在模仿它。添加所有默认类是一回事,但我不得不认为应该有一种更简单的方法来解决悬停和聚焦问题

我试过了,但没用。 不知何故,所有的类都被撤销了

HTML:

在这里拉小提琴:


我的问题:有没有一种设置css类“ui状态悬停”和“ui状态焦点”的方法比使用我的按钮单独方法更简单?

我认为最好的简化方法是将格式化按钮移动到模型中:

所以按钮得到了一个模型

FormatButton = function(data)
{
  var self = this;

   self.letter = ko.observable(data.Letter);

   //Styles for button group 
   self.isFirst = ko.observable(data.isFirst);
   self.isLast = ko.observable(data.isLast);
   self.isHovering = ko.observable(false);
   self.isSelected = ko.observable(false);

   self.mouseOver = function(){ self.isHovering(true);};
   self.mouseOut = function(){ self.isSelected(false); };
}
每个标题都有一些按钮

Title = function(data){
    var self = this;

    self.ID = data.ID;    
    self.name = ko.observable(data.name);

    self.buttons = ko.observableArray([
        new FormatButton( {isFirst: true, letter: 'B' }),
        new FormatButton( {letter: 'I'}),
        new FormatButton( {isLast: true, letter: 'U'})
    ]); 


    return self;
};
用于显示按钮的html可能会变成for循环

<!-- ko foreach: buttons -->
    <input class="ui-helper-hidden-accessible" type="checkbox"  data-bind="attr: { 'id' : letter}, checked: isSelected" />
    <label 
    rule="button" aria-disabled="false"
    class="ui-button ui-widget ui-state-default ui-button-text-only ui-state-active" 
    data-bind="attr: { 'for' : 'myBold'+ ID},
               hasFocus: $root.bIsSelected,
               event: { mouseover: $root.bMouseOver, mouseout: $root.bMouseOut },
               css: { 'ui-state-active' : isBold, 'ui-state-focus' : $root.bIsSelected(), 'ui-state-hover' : $root.bHovering(), 'ui-corner-left': isFirst, 'ui-corner-right': isRight }">
        <span class="ui-button-text" data-bind="text: letter"></span>
    </label>
<!-- /ko -->

Title = function(data){
    var self = this;

    self.ID = data.ID;    
    self.name = ko.observable(data.name);

    self.buttons = ko.observableArray([
        new FormatButton( {isFirst: true, letter: 'B' }),
        new FormatButton( {letter: 'I'}),
        new FormatButton( {isLast: true, letter: 'U'})
    ]); 


    return self;
};
<!-- ko foreach: buttons -->
    <input class="ui-helper-hidden-accessible" type="checkbox"  data-bind="attr: { 'id' : letter}, checked: isSelected" />
    <label 
    rule="button" aria-disabled="false"
    class="ui-button ui-widget ui-state-default ui-button-text-only ui-state-active" 
    data-bind="attr: { 'for' : 'myBold'+ ID},
               hasFocus: $root.bIsSelected,
               event: { mouseover: $root.bMouseOver, mouseout: $root.bMouseOut },
               css: { 'ui-state-active' : isBold, 'ui-state-focus' : $root.bIsSelected(), 'ui-state-hover' : $root.bHovering(), 'ui-corner-left': isFirst, 'ui-corner-right': isRight }">
        <span class="ui-button-text" data-bind="text: letter"></span>
    </label>
<!-- /ko -->