Переваги:
можна призначати кілька обробників події;
можна оброблювати нестандартні події
Подія click спрацює для трьох тегів: p → div → form
2. подія click спрацює для тегу div:
event.target вказує на p event.currentTatget вказує на div
3. подія click спрацює для тегу form:
event.target вказує на p event.currentTatget вказує на form
4. подія click спрацює для тегу body:
event.target вказує на p
event.currentTatget вказує на body
5. подія click спрацює для тегу html:
event.target вказує на p
event.currentTatget вказує на html
Приклад
Приклад відміни стандартної дії при натисканні на
посилання
Комплексним подіям передує чітко визначений ряд простих подій
При натисканні правою клавішею миші спочатку спрацьовує подія contextmenu, а потім з’являється контекстне меню. Для заборони відображення контекстного меню потрібно використовувати event.preventDefault():
window.addEventListener('load', function loadFunc() {
window.removeEventListener('load', loadFunc);
document.getelementById('block').addEventListener(
'contextmenu', function (event) {
// код
event.preventDefault();
});
});
Якщо миша перейшла з-за меж вікна (перейшла за вікно), то event.relatedTarget == null
CSS-стилі:
#table td {
width: 150px;
white-space: nowrap;
text-align: center;
vertical-align: bottom;
padding-top: 5px;
padding-bottom: 12px;
}
#table .a11 {
background: #999;
}
#table .a12 {
background: #03f;
color: #fff;
}
JavaScript:
window.onload = function() {
table.onmouseover = function(event) {
var target = event.target;
target.style.background = 'pink';
};
table.onmouseout = function(event) {
var target = event.target;
target.style.background = '';
};
}
Пояснення: події, які виникають у вкладених у table тегах, спливають і перехоплюються
у тезі table обробниками подій onmouseover і onmouseout. Це дає можливість не
встановлювати обробники подій для кожної комірки, а встановити один раз –
для таблиці.
https://jsfiddle.net/morozovandriy/zxngrh8d/1/
window.onload = function() {
table.onmouseover = function(event) {
var target = event.target;
while (target != this) {
if (target.tagName == 'TD') break;
target = target.parentNode;
}
if (target == this) return;
target.style.background = 'pink';
};
table.onmouseout = function(event) {
var target = event.target;
while (target != this) {
if (target.tagName == 'TD') break;
target = target.parentNode;
}
if (target == this) return;
target.style.background = '';
};
}
https://jsfiddle.net/morozovandriy/ob6cakzw/1/
Особливості:
події keydown / keyup дозволяють відслідкувати яка клавіша або яка комбінація клавіш була натиснута;
подія keypress дозволяє отримати введений символ;
в полях форми при виникненні подій keydown / keypress клавіша ще оброблена браузером (тобто при зверненні до value відповідного поля значення буде ще старе).
Для подій клавіатури також можна перевіряти, чи була затиснута службова клавіша:
event.shiftKey
event.altKey
event.ctrlKey
event.metaKey
window.addEventListener('keydown',
function myKeyDown(event)
{
if (event.keyCode == 116)
event.preventDefault();
});
Для цього на сайті http://keycodes.info/ отримуємо код клавіші
F5.
Зовнішній вигляд:
https://jsfiddle.net/morozovandriy/gdbg8yaL/
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть