Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.03.2014, 14:40
Интересующийся
Отправить личное сообщение для Mizter Egoist Посмотреть профиль Найти все сообщения от Mizter Egoist
 
Регистрация: 05.03.2014
Сообщений: 23

закрытие при клике в body
Добра всем!
Делаю малую корзину в битриксе, пытаюсь обновлять значения с помощью аякса, вроде все получается, кроме одного.
Вот что написалось:
$(document).ready(function(){
	showBasketLine();
	showBasketSmall();
	$(".storeBuy a").click(showBasketLine);
});
function showSmallBasket() {
	if($(".basketSmallBox").is(":visible")){
		$(".basketSmallBox").removeClass("shower").hide();
	} else if ($(".basketSmallBox").is(":hidden")) {
		showBasketSmall();
		$(".basketSmallBox").addClass("shower").show();
	}
}
function showBasketLine() {
	$.ajax({
		url: "/bitrix/templates/imperia.Pallet/include_areas/ajax.handler.php",
		type: "GET",
		cache: true,
		timeout: 1000,
		data: "block=basketLine",
		dataType: "html",
		success: function(data){
			$('.basketLineBox').html(data)
		}
	});
}
function showBasketSmall() {
	$.ajax({
		url: "/bitrix/templates/imperia.Pallet/include_areas/ajax.handler.php",
		type: "GET",
		cache: true,
		timeout: 1000,
		data: "block=basketSmall",
		dataType: "html",
		success: function(data){
			$('.basketSmallBox').html(data)
		}
	});
}

showSmallBasket() это функция вызываемая этой ссылкой
<a href="<?=$arParams["PATH_TO_BASKET"]?>" onclick="showSmallBasket(); return false;">...</a>
. Когда жмешь на ссылку, появляется блок с малой корзиной, жмешь на ссылку еще раз и малая корзина закрывается, и осталось только доделать закрытие малой корзины при щелчке в любом месте кроме малой корзины.
Помогите мне пожалуйста доделать.
Ответить с цитированием
  #2 (permalink)  
Старый 05.03.2014, 14:47
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

В момент открытия корзины навешивать обработчик click на body (или на document). В обработчике проверяешь предков - если есть корзина (то есть клик пришелся по корзине), то игнорируешь клик. Иначе закрываешь корзину.
По закрытию корзины снимаешь обработчик.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 05.03.2014, 14:56
Интересующийся
Отправить личное сообщение для Mizter Egoist Посмотреть профиль Найти все сообщения от Mizter Egoist
 
Регистрация: 05.03.2014
Сообщений: 23

Вот html
<div id="headerTel" class="basketHeader">
	<div class="basketLineBox">
		<div class="basketLine">
			<a href="cart" onclick="showSmallBasket(); return false;">В корзине <b>1</b> товар</a>
		</div>
	</div>
	<div class="basketSmallBox" style="display: none;">
		<div class="basketSmall">
			<h3>Позиции в Вашей корзине:</h3>
			<div class="basketSmallConteiner">
				<a href="/store/pallet/poddon_1200kh800_gost_9078/" title="Поддон 1200х800 ГОСТ 9078-84">Поддон 1200х800 ГОСТ 9078-84</a>
				Цена: 120.00 руб.
				Количество: 21.00
			</div>
			<form method="get" action="/p/cart">
				<input type="submit" value="Изменить количество">
			</form>
			<form method="get" action="/p/order">
				<input type="submit" value="Оформить заказ">
			</form>
		</div>
	</div>
</div>

danik.js, Я кучу всего перепробовал, в голове путаница, можете пожалуйста написать пример?
Ответить с цитированием
  #4 (permalink)  
Старый 05.03.2014, 15:20
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Mizter Egoist
можете пожалуйста написать пример
Не. Сегодняшняя квота бесплатного кода вышла ))
Мож кто поможет. А лучше не жди а пробуй сам. Хотя бы попытайся (и показывай код)
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 05.03.2014, 15:29
Интересующийся
Отправить личное сообщение для Mizter Egoist Посмотреть профиль Найти все сообщения от Mizter Egoist
 
Регистрация: 05.03.2014
Сообщений: 23

На сегодня мои мозги зашились. Тогда если мне завтра квота не выпадет, буду дальше танцевать с бубном.
Ответить с цитированием
  #6 (permalink)  
Старый 06.03.2014, 05:14
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Можно сделать проще: при открытии корзины, ставить на body фиксированный прозрачный div на весь экран, при клике на этот div закрыть корзину и удалять этот div.
Ответить с цитированием
  #7 (permalink)  
Старый 06.03.2014, 13:52
Аватар для Sly_Enigma
Новичок на форуме
Отправить личное сообщение для Sly_Enigma Посмотреть профиль Найти все сообщения от Sly_Enigma
 
Регистрация: 15.12.2011
Сообщений: 2

а не проще ли всего написать event.stopPropagation()?
Ответить с цитированием
  #8 (permalink)  
Старый 06.03.2014, 15:03
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

По-моему битрикс такая байда, где никакой корзины не надо. Или при чем тут вообще битрикс?

По теме. Слушайте предыдущего оратора. Всего лишь требуется не пропустить событие к боди и тогда в функции на щелчке по туловищу кроме прочего тупо вырубать заранее известный контейнер из видимости.
Ответить с цитированием
  #9 (permalink)  
Старый 06.03.2014, 15:07
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

А в той ссылке - по которой типа щелкают чтобы закрыть типа корзину - допускать это самое событие до туловища. Улавливаете?

Про битрикс. Что такое корзина? Это фильтр из всего ассортимента по критерию активный заказ больше 0.
Ответить с цитированием
  #10 (permalink)  
Старый 07.03.2014, 09:32
Интересующийся
Отправить личное сообщение для Mizter Egoist Посмотреть профиль Найти все сообщения от Mizter Egoist
 
Регистрация: 05.03.2014
Сообщений: 23

$(document).ready(function(){
	showBasketLine();
	showBasketSmall();
	$(".storeBuy a").click(showBasketLine);
});
$("html").click(function() {
	if($(".basketSmallBox").is(":visible")){
		$(".basketSmallBox").removeClass("shower").hide();
	}
});
function showSmallBasket(event) {
	if($(".basketSmallBox").is(":visible")){
		$(".basketSmallBox").removeClass("shower").hide();
	} else if ($(".basketSmallBox").is(":hidden")) {
		showBasketSmall();
		$(".basketSmallBox").addClass("shower").show();
		event.stopPropagation();
	}
}
function showBasketLine() {
	$.ajax({
		url: "/bitrix/templates/imperia.Pallet/include_areas/ajax.handler.php",
		type: "GET",
		cache: true,
		timeout: 1000,
		data: "block=basketLine",
		dataType: "html",
		success: function(data){
			$('.basketLineBox').html(data)
		}
	});
}
function showBasketSmall() {
	$.ajax({
		url: "/bitrix/templates/imperia.Pallet/include_areas/ajax.handler.php",
		type: "GET",
		cache: true,
		timeout: 1000,
		data: "block=basketSmall",
		dataType: "html",
		success: function(data){
			$('.basketSmallBox').html(data)
		}
	});
}

Не работает((
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение размера элемента при клике Derekovich Элементы интерфейса 25 05.12.2013 20:45
Отображение при клике + закрытие предыдущего Galyanov jQuery 8 13.11.2013 20:01
Смена фона картинки при клике на иконку Letto Элементы интерфейса 2 08.11.2013 18:31
Изменение фона элемента при клике. psydo Элементы интерфейса 8 28.06.2012 23:53
Вопрос по jquery. Как запретить один из скриптов при клике vuler Общие вопросы Javascript 1 07.03.2012 22:35