Показать сообщение отдельно
  #5 (permalink)  
Старый 18.07.2013, 10:18
Аспирант
Отправить личное сообщение для pifon Посмотреть профиль Найти все сообщения от pifon
 
Регистрация: 17.07.2013
Сообщений: 46

как-то так оно выглядит

<section id="product">
    <ul class="clear">
        <li data-id="1">
            <a href="#">
                <img src="http://lorempixel.com/150/100/technics/1/" alt="">
                <h3>Название товара</h3>
                <p>Описание</p>
            </a>
        </li>
        <li data-id="2">...</li>
        <li data-id="3">...</li>
    </ul>
</section>


<aside id="sidebar">
    <div class="basket">
        <div class="basket_list">
            <div class="head">
                <span class="name">Наименование</span>
                <span class="count">Кол-во</span>
            </div>
            <ul>
                <!-- Здесь будут располагаться позиции перемещенных товаров --> 
            </ul>
        </div>
    </div>
</aside>


$(function () {
		// jQuery UI Draggable
		$("#product li").draggable({
			// возвращает товар обратно на свое место после перетаскивания
			revert:true,
			// как только начинается перетаскивание мы делаем прозрачными остальные объекты
			// добавляем класс CSS
			drag:function () {
				$(this).addClass("activebasket");
				$(this).closest("#product").addClass("activebasket");
			},
			// удаляем CSS класс после перетаскивания
			stop:function () {
				$(this).removeClass("activebasket").closest("#product").removeClass("activebasket");
			} 
		});
        // jQuery Ui Droppable
		$(".basket").droppable({
			// CSS класс для корзины, срабатывает в момент начала перетаскивания товара
			activeClass:"activebasket",
			// CSS класс для корзины при появлении товара в области корзины
			hoverClass:"hover",
			// Определим режим сбрасывания. Сбросить товар можно при приближении к корзине
			// Возможные другие значения [url]http://api.jqueryui.com/droppable/#option-tolerance[/url]
			
			
			tolerance:"touch",
			drop:function (event, ui) {
				var basket = $(this),
						move = ui.draggable,
						itemId = basket.find("ul li[data-id='" + move.attr("data-id") + "']");
				// Если такой товар уже есть в корзине то добавляем +1 к количеству
				if (itemId.html() != null) {
					itemId.find("input").val(parseInt(itemId.find("input").val()) + 1);
				}
				else {
					// Иначе добавляем товар в корзину (функция ниже)
					addBasket(basket, move);
					// И добавляем количество
					move.find("input").val(parseInt(move.find("input").val()) + 1);
				}
			}
		});


		
		// Эта функция добавляет новый элемент списка в корзину
        function addBasket(basket, move) {
			basket.find("ul").append('<li data-id="' + move.attr("data-id") + '">'
					+ '<span class="name">' + move.find("h3").html() + '</span>'
					+ '<input class="count" value="1" type="text">'
					+ '<button class="delete">&#10005;</button>');
		}
        // Функция для удаления товара из списка 
        $(".basket ul li button.delete").live("click", function () {
			$(this).closest("li").remove();
		});
    });
Ответить с цитированием