Advertisement
Guest User

Untitled

a guest
May 24th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. // 1
  2. class SimpleCollapse {
  3. constructor(item) {
  4. // Инициализируем необходимые элементы и состояние
  5. this.item = document.querySelector(item);
  6. this.control = this.item.querySelector('.collapse-control');
  7. this.content = this.item.querySelector('.collapse-content');
  8. this.collapseState = false;
  9. }
  10. toggleCollapseState() {
  11. // меняем состояние на противоположное
  12. this.collapseState = !this.collapseState;
  13. }
  14. toggleCollapseContent() {
  15. // в зависимости от состояния прячем/показываем элемент
  16. this.content.style.display = this.collapseState ? 'none' : 'block';
  17. }
  18. init() {
  19. this.control.addEventListener('click', e => {
  20. // При клике
  21. e.preventDefault();
  22. this.toggleCollapseState();
  23. this.toggleCollapseContent();
  24. });
  25. }
  26. }
  27. // =========================================
  28.  
  29. // 1a
  30. import $ from 'jquery'; // подключаем jquery
  31. import SimpleCollapse from './SimpleCollapse'; // подключаем SimpleCollapse
  32.  
  33. class JqueryCollapse extends SimpleCollapse {
  34. constructor(item) {
  35. super(item);
  36. }
  37.  
  38. toggleCollapseContent() {
  39. // меняем скрытие/показ элемента на анимированный из jquery
  40. $(this.content).stop().slideToggle();
  41. }
  42. }
  43. // ============================
  44.  
  45. // 2 На каллбеках
  46. let a = undefined;
  47. let b = undefined;
  48.  
  49. setTimeout(
  50. (function(callback) {
  51. a = 'a';
  52.  
  53. callback();
  54. })(function() {
  55. setTimeout(function() {
  56. b = 'b';
  57.  
  58. console.log(a);
  59. console.log(b);
  60. }, 1000 * Math.random());
  61. }),
  62. 1000 * Math.random()
  63. );
  64.  
  65. // ==================================
  66. // 2. На промисах
  67. let a = undefined;
  68. let b = undefined;
  69.  
  70. Promise.all([
  71. new Promise(resolve =>
  72. setTimeout(() => {
  73. a = 'a';
  74. resolve(a);
  75. }, 1000 * Math.random())
  76. ),
  77. new Promise(resolve =>
  78. setTimeout(() => {
  79. b = 'b';
  80. resolve(b);
  81. }, 1000 * Math.random())
  82. ),
  83. ]).then(([a, b]) => {
  84. console.log(a);
  85. console.log(b);
  86. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement