Advertisement
Guest User

Untitled

a guest
Nov 17th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var catsList = {
  2.   cats: [{name: 'Jimmy', clicks: 0, img: "https://lh4.ggpht.com/dUJNejPqb_qLsV1kfWcvviqc7adxsw02BSAm8YLWNklP4lI6fQCLKXd-28uKuchtjoEUpqFN0K6kkTSDHw=s0#w=588&h=640"},
  3.          {name: 'Arnold', clicks: 0, img: "https://lh4.ggpht.com/dUJNejPqb_qLsV1kfWcvviqc7adxsw02BSAm8YLWNklP4lI6fQCLKXd-28uKuchtjoEUpqFN0K6kkTSDHw=s0#w=588&h=640"}],
  4.   addCat: function(obj) {
  5.     this.cats.push(obj)
  6.   },
  7.   getCats: function() {
  8.     return this.cats;
  9.   }
  10. };
  11.  
  12. var handlers = {
  13.   addCat(name, img) {
  14.     catsList.addCat({name: name, clicks: 0, img: img});
  15.   },
  16.   getCatByName: function(name) {
  17.     var cats = catsList.getCats();
  18.     for (var i = 0; i < cats.length; i++) {
  19.       if (cats[i].name == name) {
  20.         return cats[i];
  21.       }
  22.     }
  23.   },
  24.   getCats: function() {
  25.     return catsList.getCats();
  26.   },
  27.   increaseClicks: function(name) {
  28.     var cat = this.getCatByName(name);
  29.     cat.clicks++;
  30.   }
  31. }
  32.  
  33. var view = {
  34.   catsNamesView: function() {
  35.     var catsUl = document.getElementById('catsUl');
  36.     handlers.getCats().forEach(function(cat) {
  37.       var catLi = document.createElement('li');
  38.       var button = document.createElement('button');
  39.       button.textContent = cat.name.toString();
  40.       catLi.appendChild(button);
  41.       catsUl.appendChild(catLi);
  42.     });
  43.   },
  44.   catSessionView: function(name) {
  45.     var cat = handlers.getCatByName(name);
  46.     var catNameElement = document.createElement('h2');
  47.     var catClicksElement = document.createElement('p');
  48.     var catImgElement = document.createElement('img');
  49.     var catSessionDiv = document.getElementById('catSession');
  50.     catSessionDiv.textContent = '';
  51.     catNameElement.textContent = cat.name;
  52.     catImgElement.src = cat.img;
  53.     catClicksElement.textContent = cat.clicks;
  54.     catSessionDiv.appendChild(catNameElement);
  55.     catSessionDiv.appendChild(catImgElement);
  56.     catSessionDiv.appendChild(catClicksElement);
  57.   },
  58.   renderClicks: function() {
  59.     var clicksElement = document.getElementById('catSession').lastChild;
  60.     clicksElement.textContent = handlers.getCatByName(clicksElement.previousSibling.previousSibling.textContent).clicks;
  61.    
  62.   }
  63. }
  64.  
  65. view.catsNamesView();
  66.  
  67. // Event listeners
  68. (function() {
  69.   var catsUl = document.getElementById('catsUl');
  70.   var catSessionDiv = document.getElementById('catSession');
  71.  
  72.   catsUl.addEventListener('click', function(e) {
  73.     var target = e.target;
  74.     if (target.tagName == 'BUTTON') {
  75.       view.catSessionView(target.textContent);
  76.     }
  77.   });
  78.  
  79.   catSessionDiv.addEventListener('click', function(e) {
  80.     var target = e.target;
  81.     if (target.tagName == 'IMG') {
  82.       handlers.increaseClicks(target.previousSibling.textContent);
  83.       view.renderClicks();
  84.     }
  85.   });
  86.  
  87. }());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement