62. State changes
34
◆ Transition an element from one state
to another
Direct Indirect
◆ Triggered by user ◆ Triggered by other
◆ Notify listeners element
◆ Transition element
63. State changes
35
$(document).bind('state:checked', function(e) {
if (e.trigger) {
$(e.target).attr('checked', e.value);
}
});
64. State changes
35
$(document).bind('state:checked', function(e) {
if (e.trigger) {
$(e.target).attr('checked', e.value);
}
});
65. State changes
35
$(document).bind('state:checked', function(e) {
if (e.trigger) {
$(e.target).attr('checked', e.value);
}
});
66. State changes
35
$(document).bind('state:checked', function(e) {
if (e.trigger) {
$(e.target).attr('checked', e.value);
}
});
67. State changes
35
$(document).bind('state:checked', function(e) {
if (e.trigger) {
$(e.target).attr('checked', e.value);
}
});
68. document
<html> ◆ Event bubbling allows
overwriting handlers
<body> for specific regions
<div id="body"> ◆ CSS selectors allow
overwriting handlers
<div class="element"> for specific elements
36
<input type="text"> State changes
72. Multi-value support
40
// The value of at least one element is true.
{'any': true}
// At least two elements are true.
{'n > 2': true}
// The third element is false.
{'2': false}
73. Extended values
41
// The value is greater than 8 or smaller than 5.
[ {'>': 8}, {'<': 5} ]
// At least two elements are between 5 and 8.
{'n > 2': {'>': 5, '<': 8}}
// The sum of the values of all elements is
// greater than 10.
{'sum': {'>=': 10}}