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')
===============================================================================================