Архив

Публикации с меткой ‘jquery’
1 апреля 2016 Нет комментариев
$('#top_menu > div > ul > li > span').click(function(){
	$('#top_menu ul li').not($(this).parent()).removeClass('hovered');
	$(this).parent().toggleClass('hovered');
});

В примере для открытия подменю по клику.
li.hovered ul{ будет показан

Categories: Javascript Tags:
1 апреля 2016 Нет комментариев
$('.contacts-order-btn').on('click',function(){
	$('#register-online').modal('show');
});
$('#register-online').on('shown.bs.modal',function(){
	$("input[name=phone]").mask("+7 (999) 999-99-99");
});
Categories: Javascript Tags:
30 марта 2016 Нет комментариев
$("#search").autocomplete({
	source:"/ajax_search.php",
	minLength:4,
	select:function(event,ui){
		$(this).val(ui.item.value);
		$(this).parent('form').submit();
	}
});
Categories: Javascript Tags:
21 марта 2016 Нет комментариев

В примере нужно в inline datepicker сделать активными только те даты, когда публиковались материалы, соответственно по клику на дату — фильтр.
Собираем все даты в массив:

$ann_dates=array();
$all_ann=get_from_base('date','announce','1','id');
foreach($all_ann as $item){
	$ann_dates[]=date('Y-m-d',$item['date']);
}
$ann_dates=json_encode($ann_dates);

Добавляем beforeShowDay:

$(document).ready(function(){
	class_enabled='enabled';
	class_disabled='disabled';
	dates=<?=$ann_dates?>;
	$("#datepicker").datepicker({
		inline:true,
		<?if($_GET['type']=='announce'&&isset($_GET['d'])&&isset($_GET['m'])&&isset($_GET['y'])){?>
			defaultDate:"<?=$_GET['d']?>.<?=$_GET['m']?>.<?=$_GET['y']?>",
		<?}?>
		beforeShowDay:function(d){
			var date=$.datepicker.formatDate('yy-mm-dd',d);
			for(i=0,c=dates.length;i<c;i++){
				if(date==dates[i]){
					return[true,class_enabled];
				}
			}
			return[false,class_disabled];
		},
		onSelect:function(dateText,inst){
			$(this).css("background-color","");
			window.location.href="/announce/?d="+inst.selectedDay+"&m="+(inst.selectedMonth+1)+"&y="+inst.selectedYear
		}
	});
});

Это упрощенный вариант на основе реализации для Modx:
https://habrahabr.ru/post/111155/

Categories: Javascript Tags:
16 марта 2016 Нет комментариев

При наведении на блок c overflow:hidden; отображается не поместившееся содержимое — overflow:visible; при этом этому блоку добавляется position:absolute;z-index:200;
(при наведении на карточку товара показываем больше информации о нем)
Проблема в Safari в следующем: после того как убираем мышь — не поместившееся содержимое не исчезает.
Решаем с помощью jquery:

$(document).ready(function(){
	$('#content').css('height',$('#content').height());
	$('.catalog_item').on('mouseleave',function(){
		$(this).parents(".catalog_container").hide().show(0);
	});
});

Вначале устанавливаем родительскому блоку с контентом статическую высоту чтобы страница не дергалась при перерисовке .catalog_container
Затем перерисовываем родительский элемент.
На основе: http://stackoverflow.com/questions/31587890/safari-on-mac-not-updating-redrawing-after-hover-effect

Categories: Mac, Web Tags:
29 февраля 2016 Нет комментариев
function spin_change(){
	var count=$('#n').val();
	var href=$('.detail_buy_button a').attr('href');
	$('.detail_buy_button a').attr('href',href.replace(/&n=[^&]+/,'&n='+count));
}
Categories: Javascript Tags:
5 февраля 2016 Нет комментариев
$('#square').bind("change keyup input click",function(){
	if(this.value.match(/[^0-9]/g)){
		this.value=this.value.replace(/[^0-9]/g,'');
	}
});

Обновлено:
Разрешать точку (для дробных чисел). При этом заменять запятую на точку при вводе.

$('.calc input').bind("change keyup input click",function(){
	if(this.value.match(/,/)){
		this.value=this.value.replace(/,/,'.');
	}
	if(this.value.match(/[^0-9.]/g)){
		this.value=this.value.replace(/[^0-9.]/g,'');
	}
});
Categories: Javascript Tags: ,