Shoora
5/3/2019 - 6:12 AM

JQuery & JS

JQuery & JS

====================================================================================================

jQuery удаление ссылки из элемента

$(document).ready(function() {
            $('.base-menu.type3 .parent > ul').css('display', 'block');
            $('.base-menu.type3 .parent > a').removeAttr( 'href' );
        });

====================================================================================================
====================================================================================================

Получение разрешения монитора на JS

ScreenWidth = screen.width;     
ScreenHeight = screen.height;     
alert(ScreenWidth+'x'+ScreenHeight)

 ====================================================================================================
 ===============================================================================================

Нажатие кнопки средствами jquery

$('.active').trigger('click'); 

=============================================================================================== 
=============================================================================================== 

Аналог var_dump в JQuery  (нодо доработать чтобы была рекурсия)


function dump(obj) {
    var out = "";
    if(obj && typeof(obj) == "object"){
        for (var i in obj) {
            out += i + ": " + obj[i] + "n";
        }
    } else {
        out = obj;
    }
    alert(out);
}

dump($('.mdi-aspect_ratio')); 

=============================================================================================== 
=============================================================================================== 

Привязка обработчика к ajax форме

$('.filters.ajax form input').change(function(){if(MatchMedia("only screen and (min-width: 993px)")){ajax_form_callback($(this).closest('form'));}});

$('.filters.ajax form select').change(function(){if(MatchMedia("only screen and (min-width: 993px)")){ajax_form_callback($(this).closest('form'));}});

===============================================================================================
=============================================================================================== 

Редирект на JS

// Пример перенаправления на предыдущую страницу
<script type="text/javascript">

if ( '' != document.referrer ) {
   alert('Не нада жалаватца одмину, пжалуста! Лучше вали на ' + document.referrer + '!!!');
   document.location.href = document.referrer;
} else { for (;;
   alert('Вали отседова, у тибя нету рефирера!!! Ты обманщик и пришел не по ссылке'
)); }

</script> 

// Перенаправление на конкретную страницу
<script>setTimeout(function () {window.location.replace("http://nextforever.ru/");}, 5000); // время в мс</script>


=============================================================================================== 
=============================================================================================== 

Кнопка наверх, скрипт

//BACK TO TOP
    $(window).scroll(function () {
	    if ( MatchMedia("only screen and (min-width: 993px)") ) {
    	    var wrapper = $("#back-top-wrapper");
    		if ($(this).scrollTop() > 100) {
    		    wrapper.fadeIn();
    		    //wrapper.addClass('active');
    		} else {
    		    wrapper.fadeOut();
    		    //wrapper.removeClass('active');
    		}
		}
	});
	$('#back-top').click(function () {
		$('body,html').animate({ scrollTop: 0 }, 800);
		return false;
	});

=============================================================================================== 
=============================================================================================== 

	Поиск подстроки в строке JS

	var str = 'http://www.yandex.ru';
	if(str.indexOf('yandex.ru') + 1) {
	...
	}

	var str = Привет, мир;
	str.indexOf("Привет");  // вернет 0
	str.indexOf("Билет");    // вернет -1
	str.indexOf("мир");    // вернет 8

=============================================================================================== 
=============================================================================================== 

	JS  Получение параметров GET из адресной строки браузера

	function parseGetParams() { 
	   var $_GET = {}; 
	   var __GET = window.location.search.substring(1).split("&"); 
	   for(var i=0; i<__GET.length; i++) { 
	      var getVar = __GET[i].split("="); 
	      $_GET[getVar[0]] = typeof(getVar[1])=="undefined" ? "" : getVar[1]; 
	   } 
	   return $_GET; 
	} 

	........

	var GETArr = parseGetParams();

=============================================================================================== 
=============================================================================================== 

JS  Эмуляция статической переменной в скрипте (можно использовать как счетчик)


 qwe=function(){
	    console.log(++arguments.callee.i)
	    return arguments.callee.i;
	}
	
// инициализирую "переменную"
qwe.i=0

// увеличиваю на единицу
qwe();

// использование как счетчика с проверкой четности (можно внутри другой функции):
if(qwe()%2 == 0){}

===============================================================================================
=============================================================================================== 

JS  Переключение класса (если нет добавит, если есть удалит) .toggleClass('class')

=============================================================================================== 
=============================================================================================== 

JQuery реакция на изменение размера окна браузера

$(window).resize(function() {
        ScreenWidth = screen.width;
        console.log(ScreenWidth);
        ....
        imageGalleryResize();
        и пр....
    });

===============================================================================================
=============================================================================================== 

JS Прокрутка страницы (код из шаблона your shop)

// Прокрутка страницы 
    $(window).scroll(function () {
        var goTop = $("#go-top");
        if ($(this).scrollTop() > 200) {
            goTop.fadeIn();
        } else {
            goTop.fadeOut();
        }
    });
    $('#go-top a').click(function () {
        $('html, body').animate({
            scrollTop: 0
        }, 800);
        return false;
    });

=============================================================================================== 

Отмена автозаполнения инпута

<input type="text" id="date" ... autocomplete=off>

=============================================================================================== 

Работа с Датой

Скрипт позволяющий работать с форматом вывода даты в JQuery 
https://drive.google.com/file/d/0B-FCjMFmnZuxT1BQNmVjTENMV0E/view

к прототипу класса Data добавляется метод format, выполняющий 
форматирование даты в соответствии с переданным шаблоном:

Date.prototype.format = function (mask, utc) {
    return dateFormat(this, mask, utc);
};

А теперь, измываемся над датой как угодно:

var now = new Date();
now.format("m/dd/yy"); // 8/20/12
now.format("dd.mm.yyyy"); // 20.08.2012
now.format("dd mmm"); // 20 Aug
now.format("ddd mmm dd yyyy HH:MM:ss"); // Mon Aug 20 2012 09:06:56
now.format("h:MM:ss TT"); // 9:08:39 AM
// и т.д.

Более простой метод, без подключения сторонних скриптов:

var options = {
	year: 'numeric',
	month: 'numeric',
	day: 'numeric',
	timezone: 'UTC'
};

alert((new Date()).toLocaleString("ru", options));
// 20.07.2012

=============================================================================================== 

Определение города посетителя

<script src="http://yastatic.net/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
  window.onload = function () {
      jQuery("#user-city").text(ymaps.geolocation.city);
  }
</script>
<script src="http://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU" type="text/javascript"></script>
Доставляем в <div id="user-city"></div>

=============================================================================================== 
 
 Работа с куками

 Метод создания куки

 	setCookie = function (params) {//{key=1;key=1;key=1}
        var d = new Date();
        d.setDate(d.setDate() + params.days);
       //document.cookie = "page = 5;path = /;expires = " + d1.toUTCString();
        document.cookie = params.key+"="+params.value+";path=/;expires="+d.toDateString();
        
    }

Удаление куки

	delCookie = function (key) {
        var d = new Date(0);//задали дату 1,01,1970
        document.cookie = key + "=; path=/;expires" + d.toUTCString();//d.toDateString() - было
    }

Взятие куки

	var getCookie = function (key) {//берем куки по ключу
        var index = document.cookie.indexOf(key);//нашли индекс вхождения "key = ".....; от index до index + 4
        if (index == -1) return null;
        var cookie_len = document.cookie.length;
        var result = "";
        for (var i = index + key.length + 1; document.cookie[i] != ';' && i < cookie_len;i++){
            result += document.cookie[i];
            console.log(result + '  - result');
        
        }
        return result;
    }

Проверка наличия куки (использует метод описаный выше)

var found  = getCookie(keys[i]);
if(found == null)rerurn false;


=============================================================================================== 

Сложное экранирование переменной, которую надо подставить в качестве аргумента

 var temp = "Taranis";

$('td:contains('+"'"+temp+"'"+')').css('background','yellow');

=============================================================================================== 

Получение содержимого блока корзины и вставка в произвольный блок

var onestepcart = $("#product-tab-features");// Сюда буду вставлять

onestepcart.load("/onestep/ .table.cart"); // Вытягиваю и вставляю

=============================================================================================== 

Исправление проблемы отображения smarty на подстраницах товара
(проверено на шаблоне Дизайн со вкусом v2)



$('.tab-content div[id^="page"]').each(function(){
var link = $(this).children('.product-tabs-nav-trigger-wrapper').children('a').attr('href');
$(this).load(""+link+" .product-info:first");
});

=============================================================================================== 

Подгрузка элементов ajax - ом после загрузки страницы и прокрутки вниз (для rukuxni)

<script>

var flag = false;
jQuery(document).ready(function(){

	jQuery(window).scroll(function(){
		console.log(jQuery(this).scrollTop());
	if(jQuery(this).scrollTop() > 200 && !flag){
	flag = true;

		jQuery(".kit3").load("/gallery-3/ #gallery-3", function(response, status, xhr) {
		  // error handling
		  if(status == "error") {
		    jQuery("#content").html("An error occured: " + xhr.status + " " + xhr.statusText);
		  }
		});

	}

	});

});
</script>

=============================================================================================== 
Некая обработка get параметра

var ar=window.location.toString().split('/')	
$(".lmenu li[data-id='"+ar[3].replace('.html','').replace('.php','')+"']").addClass('sel')

===============================================================================================