JSFiddle - React, Tailwind, and code Playground
by rainymaple
HTML
<script src="http://github.com/downloads/SteveSanderson/knockout/knockout-2.1.0.js"></script>
<div id="main">
<table>
<!--Form and event based bindings--><!--click and event-->
<tr>
<td>
<div class="caption">click</div>
</td>
<td>
<input type="text" data-bind="value: userInput"/>
<button data-bind="click: displayValue">display value</button>
</td>
<td>
<span>userInput: </span><span data-bind="text: userInput"></span>
</td>
</tr>
<tr>
<td>
<div class="caption">event</div>
</td>
<td>
<div data-bind="text:model.code, event: {mouseover: showDetails, mouseout: hideDetails}"></div>
<div data-bind="visible:detailsAreVisible" style="background-color: yellow">
<div data-bind="text:model.name"></div>
<div data-bind="text:salePrice"></div>
</div>
</td>
<td>
<span>detailsAreVisible: </span><span data-bind="text: detailsAreVisible"></span>
</td>
</tr>
</table>
</div>
CSS
em{font-weight:bold;}
@font-face {
font-family: 'SansationRegular';
src: url('../fonts/Sansation_Regular-webfont.eot');
src: url('../fonts/Sansation_Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/Sansation_Regular-webfont.woff') format('woff'),
url('../fonts/Sansation_Regular-webfont.ttf') format('truetype'),
url('../fonts/Sansation_Regular-webfont.svg#SansationRegular') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'SansationLight';
src: url('../fonts/Sansation_Light-webfont.eot');
src: url('../fonts/Sansation_Light-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/Sansation_Light-webfont.woff') format('woff'),
url('../fonts/Sansation_Light-webfont.ttf') format('truetype'),
url('../fonts/Sansation_Light-webfont.svg#SansationLight') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'SansationBold';
src: url('../fonts/Sansation_Bold-webfont.eot');
src: url('../fonts/Sansation_Bold-webfont.eot?#iefix') format('embedded-opentype'),
url('../fonts/Sansation_Bold-webfont.woff') format('woff'),
url('../fonts/Sansation_Bold-webfont.ttf') format('truetype'),
url('../fonts/Sansation_Bold-webfont.svg#SansationBold') format('svg');
font-weight: normal;
font-style: normal;
}
body {padding : 10px; }
body, input, select {font: 14px 'Segoe UI', 'SansationRegular', Arial, sans-serif;}
.page {
}
.showroom {
}
.header
{
margin-bottom: 20px;
}
span {
/*font: 12px 'SansationRegular', 'Segoe UI', Arial, sans-serif;*/
margin: 0 4px 0 4px;
color: black;
}
/*
ul li span {
float: left;
width: 40px;
}
*/
.alignedCaption {
float: left;
width: 40px;
}
/*.text*/
.textValues {
margin: 0 4px 0 4px;
color: rgb(47, 123, 163);
}
.caption {
/*font: 12px 'SansationBold', 'Segoe...
JavaScript
var my = {}; //my namespace
my.viewmodel = {
metadata: {
pageTitle: "Knockout: Built-In Bindings (click and event and visible)",
personal: {
link: "http://twitter.com/john_papa",
text: "@john_papa"
}
},
// text/html
id: ko.observable("123"),
model: {
code: ko.observable("314ce"),
name: ko.observable("Taylor 314 ce")
},
// value & valueUpdate
salePrice: ko.observable(1995),
// click and event and visible
userInput: ko.observable(""),
displayValue: function () {
if (this.userInput().length > 0) {
window.alert("You entered: " + this.userInput());
}
},
// event
detailsAreVisible: ko.observable(false),
showDetails: function () {
this.detailsAreVisible(true);
},
hideDetails: function () {
this.detailsAreVisible(false);
}
};
ko.applyBindings(my.viewmodel);