fixes
This commit is contained in:
parent
2a454aff13
commit
ebb6e8ec41
7 changed files with 6 additions and 17 deletions
|
@ -60,9 +60,7 @@
|
|||
|
||||
...Но как использовать на сервере шаблон с JavaScript, если его основной язык -- PHP, Ruby, Java?
|
||||
|
||||
Эту проблему решили обошли быстро.
|
||||
|
||||
На сервер, использующем PHP, Ruby, Java или какой-то другой язык, дополнительно ставится виртуальная машина [V8](http://code.google.com/p/v8/) и настраивается интеграция с ней. Почти все платформы это умеют.
|
||||
Эту проблему можно обойти. На сервер, использующем PHP, Ruby, Java или какой-то другой язык, дополнительно ставится виртуальная машина [V8](http://code.google.com/p/v8/) и настраивается интеграция с ней. Почти все платформы это умеют.
|
||||
|
||||
После этого становится возможным запускать JavaScript-шаблоны и передавать им данные в виде объектов, массивов и так далее.
|
||||
|
||||
|
|
|
@ -17,10 +17,6 @@
|
|||
Замечания:
|
||||
<ul>
|
||||
<li>Код не должен зависеть от конкретных размеров мяча и поля.</li>
|
||||
<li>Текущий HTML/CSS нельзя менять, можно лишь "украшать" (анимация).</li>
|
||||
<li>Вам пригодятся свойства `event.clientX/event.clientY`</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
P.S. Центрировать мяч можно и при помощи CSS, но JavaScript в перспективе позволит делать это гибче и определять позицию более динамически.
|
|
@ -129,7 +129,7 @@ while (target != this) {
|
|||
table.onclick = function(event) {
|
||||
var target = event.target;
|
||||
|
||||
var td = event.target.closest('td');
|
||||
var td = target.closest('td');
|
||||
if (!td) return; // клик вне <td>, не интересует
|
||||
|
||||
// если клик на td, но вне этой таблицы (возможно при вложенных таблицах)
|
||||
|
|
|
@ -54,7 +54,7 @@ var event = new Event(тип события[, флаги]);
|
|||
|
||||
Но код, который генерирует событие, может предусматривать какие-то ещё действия после `dispatchEvent`.
|
||||
|
||||
Вызов `event.preventDefault()` является возможностью для обработчика событие сообщить в сгенерировавший событие код, что эти действия продолжать не надо.
|
||||
Вызов `event.preventDefault()` является возможностью для обработчика события сообщить в сгенерировавший событие код, что эти действия продолжать не надо.
|
||||
|
||||
В примере ниже есть функция `hide()`, которая при вызове генерирует событие `hide` на элементе `#rabbit`, уведомляя всех интересующихся, что кролик собирается спрятаться.
|
||||
|
||||
|
|
|
@ -172,7 +172,7 @@ table.onmouseout = function(event) {
|
|||
```
|
||||
[online]
|
||||
|
||||
[codetabs height=450 src="mouseenter-mouseleave-delegation"]
|
||||
[codetabs height=480 src="mouseenter-mouseleave-delegation"]
|
||||
|
||||
[/online]
|
||||
|
||||
|
@ -194,7 +194,7 @@ table.onmouseout = function(event) {
|
|||
[online]
|
||||
Детали кода вы можете посмотреть в примере ниже, который демонстрирует этот подход:
|
||||
|
||||
[codetabs height=450 src="mouseenter-mouseleave-delegation-2"]
|
||||
[codetabs height=380 src="mouseenter-mouseleave-delegation-2"]
|
||||
|
||||
Попробуйте по-разному, быстро или медленно заходить и выходить в ячейки таблицы. Обработчики `mouseover/mouseout` стоят на `table`, но при помощи делегирования корректно обрабатывают вход-выход.[/online]
|
||||
|
||||
|
|
|
@ -67,11 +67,6 @@
|
|||
|
||||
</table>
|
||||
|
||||
<textarea id="text"></textarea>
|
||||
|
||||
<input type="button" onclick="text.value=''" value="Очистить">
|
||||
|
||||
|
||||
<script src="script.js"></script>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -558,7 +558,7 @@ var compiled = _.template(tmpl, {sourceURL: '/template/menu-template'});
|
|||
<ul>
|
||||
<li>Шаблон -- это строка со специальными вставками кода `<% ... %>` или переменных `<%- expr ->`, `<%= expr ->`.</li>
|
||||
<li>Вызов `_.template(tmpl)` превращает шаблон `tmpl` в функцию, которой в дальнейшем передаются данные --
|
||||
и она генерирует HTML с ними. Можно вызвать передать данные сразу в `_.template` вторым аргументом.</li>
|
||||
и она генерирует HTML с ними.</li>
|
||||
</ul>
|
||||
|
||||
В этой главе мы рассмотрели хранение шаблонов в документе, при помощи `<script>` с нестандартным `type`. Конечно, есть и другие способы, можно хранить шаблоны и в отдельном файле, если шаблонная система или система сборки проектов это позволяют.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue