javascript - 使用 knockoutJS 中的函数将 CSS 添加到 div

标签 javascript jquery html css knockout.js

我正在尝试在 knockoutJS 中实现 CSS 绑定(bind)。

我想打印名称数组中的所有名称,一个接一个。 问题是还有另一个数组有一些特殊的名称。

所有特殊名称都应获得“good”CSS 类。其余的是“错误”css 类。

这是我尝试过的:

HTML

 <!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery.min.js"></script>
<link href="http://getbootstrap.com/dist/css/bootstrap.css" rel="stylesheet" type="text/css" />
<script src="http://getbootstrap.com/dist/js/bootstrap.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/3.0.0/knockout-min.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>



  <div data-bind="foreach : items">
    <div data-bind="text: $data, css: checkName($data)" ></div>
  </div>


</body>
</html>

JavaScript

var dataModel = function(){

  self.items = ko.observableArray(["don","bom","harry","sharry","ron"]);
  self.names = ["ron","harry"];

  self.checkName = ko.observable(function(name){

    if( $.inArray(name,self.names) ){
            return "good";
        }
        else{
            return "bad";
        }
  });

};

ko.applyBindings(new dataModel());

fiddle - http://jsbin.com/difaluwo/2/edit

现在它没有醒来。在控制台中它给我 “脚本错误。(第 0 行)”

谢谢!

最佳答案

开箱即用的 CSS 绑定(bind)有点棘手。您指定类名,然后指定应用它的条件。

JSBIN

<div data-bind="foreach : items">
    <div data-bind="text: $data, css: { good: isGoodName($data), bad: !isGoodName($data) }" ></div>
  </div>

还有你的 View 模型:

var dataModel = function(){

  self.items = ko.observableArray(["don","bom","harry","sharry","ron"]);
  self.names = ["ron","harry"];

  self.isGoodName = function (name) {
    return $.inArray(name, self.names) !== -1;
  };

};

ko.applyBindings(new dataModel());

关于javascript - 使用 knockoutJS 中的函数将 CSS 添加到 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23502104/

相关文章:

javascript不改变span容器的颜色

javascript - 使用可拖动的 jQuery 方法并隐藏 div 上的滚动条?

javascript - 为什么我的 JavaScript 代码会收到 "No ' Access-Control-Allow-Origin' header is present on the requested resource"错误,而 Postman 却没有?

html - 如果相邻单元格通过 CSS 为空,则让表格单元格跨越多列

javascript - 选择颜色为 :lightGreen in CSS using jQuery 的元素

javascript - prototype.constructor的实际目的是什么?

javascript - 用于 XML 文档的 getElementById,Mozilla 扩展

javascript - 推送数组中属性的值

javascript - 根据输入的字符数更改字体

ipad - 在 Windows 中测试 Ipad 触摸事件