скрипт мишает другим скриптам нормально функционировать
Помогите пожалуйста скрипт мишает другим скриптам нормально функционировать могу ли я использовать noconflict() или есть другие варианты?
// Модуль корзины order.js
var order = (function($) {
var ui = {
$orderForm: $('#order-form'),
$messageCart: $('#order-message'),
$orderBtn: $('#order-btn'),
$alertOrderDone: $('#alert-order-done'),
$orderMessageTemplate: $('#order-message-template'),
$fullSumma: $('#full-summa'),
};
// Инициализация модуля
function init() {
_renderMessage();
_checkCart();
_bindHandlers();
}
// Рендерим сообщение о количестве товаров и общей сумме
function _renderMessage() {
var template = _.template(ui.$orderMessageTemplate.html()),
data;
cart.update();
data = {
count: cart.getCountAll(),
summa: cart.getSumma()
};
ui.$messageCart.html(template(data));
}
// В случае пустой корзины отключаем кнопку Отправки заказа
function _checkCart() {
if (cart.getCountAll() === 0) {
ui.$orderBtn.attr('disabled', 'disabled');
}
}
// Навешиваем события
function _bindHandlers() {
ui.$orderForm.on('click', '.js-close-alert', _closeAlert);
ui.$orderForm.on('submit', _onSubmitForm);
}
// Закрытие alert-а
function _closeAlert(e) {
$(e.target).parent().addClass('hidden');
}
// Подготовка данных корзины к отправке заказа
function _getCartData() {
var cartData = cart.getData();
_.each(cart.getData(), function(item) {
item.name = encodeURIComponent(item.name);
});
return cartData;
}
// Ошибка отправки
function _orderError(responce) {
console.error('responce', responce);
// Далее обработка ошибки, зависит от фантазии
}
// Отправка завершилась
function _orderComplete() {
ui.$orderBtn.removeAttr('disabled').text('Отправить заказ');
}
// Оформляем заказ
function _onSubmitForm(e) {
var isValid,
formData,
cartData,
orderData;
e.preventDefault();
formData = ui.$orderForm.serialize();
cartData = _getCartData();
orderData = formData + '&cart=' + JSON.stringify(cartData);
ui.$orderBtn.attr('disabled', 'disabled').text('Идет отправка заказа...');
$.ajax({
url: 'scripts/order.php',
data: orderData,
type: 'POST',
cache: false,
dataType: 'json',
error: _orderError,
success: function(responce) {
if (responce.code === 'success') {
_orderSuccess(responce);
} else {
_orderError(responce);
}
},
complete: _orderComplete
});
}
// Экспортируем наружу
return {
init: init
}
})(jQuery);
// ****** UZB
// ****** RUS
// ****** ENG
var shoppingCart = function () {
// =============================
//
// =============================
cart = [];
// Конструктор * Constructor * Konstruktor
function Item(id, name,price,count) {
this.id = id;
this.name = name;
this.price = price;
this.count = count;
}
// Загрузить тележку
function loadCart() {
cart = JSON.parse(localStorage.getItem('cart'));
}
if (localStorage.getItem("cart") != null) {
loadCart();
}
// Сохранить корзину * Save cart * Savatni saqlash
function saveCart() {
localStorage.setItem('cart', JSON.stringify(cart));
}
// =============================
// Публичные методы и свойства
// =============================
var obj = {};
// Добавить в корзину bd func
obj.addItemToCart = function (id, name, price, count) {
for (var item in cart) {
if (cart[item].name === name) {
cart[item].count++;
saveCart();
return;
}
}
var item = new Item(id, name, price, count);
cart.push(item);
saveCart();
};
// Установить количество от элемента
obj.setCountForItem = function (name, count) {
for (var i in cart) {
if (cart[i].name === name) {
cart[i].count = count;
break;
}
}
};
// Удалить товар из корзины
obj.removeItemFromCart = function (name) {
for (var item in cart) {
if (cart[item].name === name) {
cart[item].count--;
if (cart[item].count === 0) {
cart.splice(item, 1);
}
break;
}
}
saveCart();
};
// Удалить все товары из корзины
obj.removeItemFromCartAll = function (name) {
for (var item in cart) {
if (cart[item].name === name) {
cart.splice(item, 1);
break;
}
}
saveCart();
};
// Очистить корзину
obj.clearCart = function () {
cart = [];
saveCart();
};
// Подсчитать корзину
obj.totalCount = function () {
var totalCount = 0;
for (var item in cart) {
totalCount += cart[item].count;
}
return totalCount;
};
// Все товары в корзине (кол-во)
obj.totalCart = function () {
var totalCart = 0;
for (var item in cart) {
totalCart += cart[item].price * cart[item].count;
}
return Number(totalCart.toFixed(2));
};
// Список корзины
obj.listCart = function () {
var cartCopy = [];
for (i in cart) {
item = cart[i];
itemCopy = {};
for (p in item) {
itemCopy[p] = item[p];
}
itemCopy.total = Number(item.price * item.count).toFixed(2);
cartCopy.push(itemCopy);
}
return cartCopy;
};
// тележка: Массив
// Элемент: Объект / Класс
// добавить товар в корзину: функция
// удалить товар из корзины: функция
// удалить товар из корзины All: функция
// очистить корзину: функция
// подсчитываем корзину: функция
// Всего Корзина: Функция
// список Корзина: Функция
// сохранить корзину: функция
// загрузка корзины: функция
return obj;
}();
// *****************************************
// Триггеры / События
// *****************************************
// Добавить элемент
$('.add-to-cart').click(function (event) {
event.preventDefault();
var id = Number($(this).data('id'));
var name = $(this).data('name');
var price = Number($(this).data('price'));
shoppingCart.addItemToCart(id, name, price,1);
displayCart();sarvar();
});
// Очистить элементы
$('.clear-cart').click(function () {
shoppingCart.clearCart();
displayCart();sarvar();
});
function displayCart() {
var cartArray = shoppingCart.listCart();
var output = "";
for (var i in cartArray) {
output += "<tr>" +
"<td>" + cartArray[i].name + "</td>" +
"<td>(" + cartArray[i].price + ")</td>" +
"<td><div class='input-group'><button class='minus-item input-group-addon btn btn-primary' data-name=" + cartArray[i].name + ">-</button>" +
"<input type='number' class='item-count form-control' data-name='" + cartArray[i].name + "' value='" + cartArray[i].count + "'>" +
"<button class='plus-item btn btn-primary input-group-addon' data-name=" + cartArray[i].name + ">+</button></div></td>" +
"<td><button class='delete-item btn btn-danger' data-name=" + cartArray[i].name + ">X</button></td>" +
" = " +
"<td>" + cartArray[i].total + "</td>" +
"</tr>";
}
$('.show-cart').html(output);
$('.total-cart').html(shoppingCart.totalCart());
$('.total-count').html(shoppingCart.totalCount());
}
function sarvar() {
var cartArray = shoppingCart.listCart();
var output = "";
for (var i in cartArray) {
output += "<tr>" +
"<td>" + cartArray[i].name + "</td>" +
"<td>(" + cartArray[i].price + ")</td>" +
"</tr>";
}
$('.sarvar').html(output);
}
// Кнопка удаления элемента
$('.show-cart').on("click", ".delete-item", function (event) {
var name = $(this).data('name');
shoppingCart.removeItemFromCartAll(name);
displayCart();
});
// -1
$('.show-cart').on("click", ".minus-item", function (event) {
var name = $(this).data('name');
shoppingCart.removeItemFromCart(name);
displayCart();
});
// +1
$('.show-cart').on("click", ".plus-item", function (event) {
var name = $(this).data('name');
shoppingCart.addItemToCart(name);
displayCart();
});
// Ввод количества предметов
$('.show-cart').on("change", ".item-count", function (event) {
var name = $(this).data('name');
var count = Number($(this).val());
shoppingCart.setCountForItem(name, count);
displayCart();
});
displayCart();