Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 14
1

Вынесение кода из страницы в отдельный файл

07.06.2016, 23:53. Просмотров 883. Ответов 3

Имею след. код javascript в своем html документе, помогите исправить его так, что бы можно было вынести его в отдельный файл и подключить.
Javascript
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
var d = document,
    itemBox = d.querySelectorAll('.item_box'), // блок каждого товара
    cartCont = d.getElementById('cart_content'); // блок вывода данных корзины
// Функция кроссбраузерной установка обработчика событий
function addEvent(elem, type, handler){
  if(elem.addEventListener){
    elem.addEventListener(type, handler, false);
  } else {
    elem.attachEvent('on'+type, function(){ handler.call( elem ); });
  }
  return false;
}
// Получаем данные из LocalStorage
function getCartData(){
  return JSON.parse(localStorage.getItem('cart'));
}
// Записываем данные в LocalStorage
function setCartData(o){
  localStorage.setItem('cart', JSON.stringify(o));
  return false;
}
// Добавляем товар в корзину
function addToCart(e){
  this.disabled = true; // блокируем кнопку на время операции с корзиной
  var cartData = getCartData() || {}, // получаем данные корзины или создаём новый объект, если данных еще нет
      parentBox = this.parentNode, // родительский элемент кнопки "Добавить в корзину"
      itemId = this.getAttribute('data-id'), // ID товара
      itemTitle = parentBox.querySelector('.item_title').innerHTML, // название товара
      itemPrice = parentBox.querySelector('.item_price').innerHTML; // стоимость товара
  if(cartData.hasOwnProperty(itemId)){ // если такой товар уже в корзине, то добавляем +1 к его количеству
    cartData[itemId][2] += 1;
  } else { // если товара в корзине еще нет, то добавляем в объект
    cartData[itemId] = [itemTitle, itemPrice, 1];
  }
  if(!setCartData(cartData)){ // Обновляем данные в LocalStorage
    this.disabled = false; // разблокируем кнопку после обновления LS
  }
 return false;
}
// Устанавливаем обработчик события на каждую кнопку "Добавить в корзину"
for(var i = 0; i < itemBox.length; i++){
  addEvent(itemBox[i].querySelector('.add_item'), 'click', addToCart);
}
// Открываем корзину со списком добавленных товаров
function openCart(e){
  var cartData = getCartData(), // вытаскиваем все данные корзины
      totalItems = '';
  // если что-то в корзине уже есть, начинаем формировать данные для вывода
  if(cartData !== null){
    totalItems = '<table class="shopping_list"><tr><th>Наименование</th><th>Цена</th><th>Кол-во</th></tr>';
    for(var items in cartData){
      totalItems += '<tr>';
      for(var i = 0; i < cartData[items].length; i++){
        totalItems += '<td>' + cartData[items][i] + '</td>';
      }
      totalItems += '</tr>';
    }
    totalItems += '</table>';
    cartCont.innerHTML = totalItems;
  } else {
    // если в корзине пусто, то сигнализируем об этом
    cartCont.innerHTML = 'В корзине пусто!';
  }
  return false;
}
/* Открыть корзину */
addEvent(d.getElementById('checkout'), 'click', openCart);
/* Очистить корзину */
addEvent(d.getElementById('clear_cart'), 'click', function(e){
  localStorage.removeItem('cart');
  cartCont.innerHTML = 'Корзина очишена.';
});
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2016, 23:53
Ответы с готовыми решениями:

Вынесение кода в отдельный файл.
Чтобы понять ООП, пишу маленькую игрушку-пошаговый файтинг для курсовика. Пока консольный, linux....

Вынесение настроек из программы в отдельный конфигурационный файл
Добрый вечер, хочу повторить интересующий вопрос, надеюсь на вашу помощь. Есть допустим в...

Си++, помещение комментариев из кода страницы в отдельный файл
Добрый вечер! Мне необходимо комментарии из кода программы поместить в отдельный файл. Программа...

Вынесение обработчика события в отдельный класс
Возникает следующая проблема: у многих форм одно и то же событие обрабатывается одинаковым кодом,...

3
Ренегат
Эксперт HTML/CSS
1733 / 1078 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
08.06.2016, 00:21 2
polizai2, просто запишите весь этот код в файл с расширением .js
а потом в html перед </body> вставьте вот такую строку
HTML5
1
<script src="ТУТ ПУТЬ ДО ВАШЕГО ФАЙЛА"></script>
0
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 14
08.06.2016, 00:30  [ТС] 3
я так и делаю, но почему то код отказывается работать. В чем проблема?

Добавлено через 1 минуту
может код в html выглядит как-то иначе чем должен быть в js и его надо исправить? просто я в этом не разбираюсь а нужно сделать
0
Ренегат
Эксперт HTML/CSS
1733 / 1078 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
08.06.2016, 00:57 4
polizai2, покажите весь код страницы
и консоль
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2016, 00:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вынести часть кода в отдельный файл
Ситуация следующая: Есть три php файла. index.php (страница с формой), verification.php...

Вынести блок кода в отдельный файл
Представим такую ситуацию: у вас есть блок-меню сайта, который повторяется на всех страницах,...

Вынести часть кода в отдельный файл
Есть не большой сайтик. Cобран из html страниц и один банер в верху. Если изменять банер - нужно...

Вопрос по выносу кода в отдельный файл
Вот если писать в С программу, очень много когда можно запутаться ... Можно ли как то вынести...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.