Файл Main.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>main</title> </head> <body> <button id="CheckPassengers">CheckPassengers</button> <script src="EventHandler.js"></script> <hr> <div id="mydiv"> </div> </body> </html> |
Примечание. Когда мы используем функцию внутри другой функции в качестве параметра, то должны писать её без круглых скобок, хотя её фактическая реализация со скобками. То есть, например вот так
1 |
Somefunction(Anotherfunction); //<<Так сработает |
а не так
1 |
Somefunction(Anotherfunction(parameter1,parameter2));// <<Так не сработает |
Файл EventHandler.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
/** * @author Stas */ // Создадим массив объектов var passengers = [ { name: "Jane Doloop", paid: true, ticket: "coach" }, { name: "Dr. Evel", paid: true, ticket: "firstclass" }, { name: "Sue Property", paid: true, ticket: "firstclass" }, { name: "John Funcall", paid: true, ticket: "premium" } ]; //В эту функцию будем подставлять другие, вместо параметра test function processPassengers(passengers, test) { for (var i = 0; i < passengers.length; i++) { if (test(passengers[i])) { return false; } } return true; } //Доп. функция. Проверим есть ли местер зло в списке? function checkNoFlyList(passenger) { if (passenger.name === "Dr. Evel") return true; } //Доп. функция. Проверим все ли оплатили? function checkNotPaid(passenger) { if (passenger.paid==false) return true; } function Integration(){ //Проверка на доктора зло if (processPassengers(passengers,checkNoFlyList)){ document.getElementById('mydiv').innerHTML='На борту нет доктора зло'; } else {document.getElementById('mydiv').innerHTML='На борту есть доктор зло';} //Проверка на оплату if (processPassengers(passengers,checkNotPaid)){ document.getElementById('mydiv').innerHTML=document.getElementById('mydiv').innerHTML+'<br>'+'Все оплатили'; } else {document.getElementById('mydiv').innerHTML=document.getElementById('mydiv').innerHTML+'<br>'+'Кто-то не оплатил';} }; document.getElementById('CheckPassengers').onclick=function(){Integration();}; |