Skip to content

Commit d43d6eb

Browse files
committed
Remove obsolete jQuery dependency from the demo.
1 parent 18626f8 commit d43d6eb

File tree

3 files changed

+57
-34
lines changed

3 files changed

+57
-34
lines changed

css/demo.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ input {
4848
background: #fff;
4949
color: #222;
5050
}
51+
.error {
52+
color: red;
53+
}
5154

5255
@media (min-width: 481px) {
5356
.navigation {

index.html

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,10 @@ <h4>Features</h4>
7272
}
7373
</script>
7474
<script type="text/x-tmpl" id="tmpl-error">
75-
<code>{%=o%}</code>
75+
<h3 class="error">{%=o.title%}</h3>
76+
<code>{%=o.error%}</code>
7677
</script>
7778
<script src="js/tmpl.js"></script>
78-
<!-- jQuery is not required by JavaScript Templates, but included for the demo -->
79-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
8079
<script src="js/demo.js"></script>
8180
</body>
8281
</html>

js/demo.js

Lines changed: 52 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,40 +9,61 @@
99
* http://www.opensource.org/licenses/MIT
1010
*/
1111

12-
/*global window, $ */
12+
/* global document, tmpl */
1313

14-
$(function () {
14+
(function () {
1515
'use strict';
1616

17-
var render = function (event) {
18-
event.preventDefault();
19-
var result;
20-
try {
21-
result = window.tmpl(
22-
$('#template').val(),
23-
$.parseJSON($('#data').val())
24-
);
25-
} catch (e) {
26-
result = window.tmpl('tmpl-error', e);
27-
}
28-
$('#result').html(result);
29-
},
30-
init = function (event) {
31-
if (event) {
32-
event.preventDefault();
33-
}
34-
$('#template').val($.trim($('#tmpl-demo').html()));
35-
$('#data').val($.trim($('#tmpl-data').html()));
36-
$('#result').empty();
37-
},
38-
error = function (e) {
39-
$('#result').html(
40-
window.tmpl('tmpl-error', e.originalEvent.message)
17+
var templateInput = document.getElementById('template');
18+
var dataInput = document.getElementById('data');
19+
var resultNode = document.getElementById('result');
20+
var templateDemoNode = document.getElementById('tmpl-demo');
21+
var templateDataNode = document.getElementById('tmpl-data');
22+
23+
function renderError(title, error) {
24+
resultNode.innerHTML = tmpl(
25+
'tmpl-error',
26+
{title: title, error: error}
27+
);
28+
}
29+
30+
function render(event) {
31+
event.preventDefault();
32+
var data;
33+
try {
34+
data = JSON.parse(dataInput.value);
35+
} catch (e) {
36+
renderError('JSON parsing failed', e);
37+
return;
38+
}
39+
try {
40+
resultNode.innerHTML = tmpl(
41+
templateInput.value,
42+
data
4143
);
42-
};
43-
$(window).on('error', error);
44-
$('#render').on('click', render);
45-
$('#reset').on('click', init);
44+
} catch (e) {
45+
renderError('Template rendering failed', e);
46+
}
47+
}
48+
49+
function empty(node) {
50+
while (node.lastChild) {
51+
node.removeChild(node.lastChild);
52+
}
53+
}
54+
55+
function init(event) {
56+
if (event) {
57+
event.preventDefault();
58+
}
59+
templateInput.value = templateDemoNode.innerHTML.trim();
60+
dataInput.value = templateDataNode.innerHTML.trim();
61+
empty(resultNode);
62+
}
63+
64+
document.getElementById('render').addEventListener('click', render);
65+
document.getElementById('reset').addEventListener('click', init);
66+
4667
init();
4768

48-
});
69+
}());

0 commit comments

Comments
 (0)