jQuery checkbox-ы с checked

Комментарии отключены

Иногда элементарным вещам не уделяешь должного места в своей голове и они плохо запоминаются, вот и с этой выборкой так, постоянно забываю o_O

$("input[name='group_name[]']:checked");
||
$("input").filter(":checkbox:checked");
||
$('input[type="checkbox"]').prop('checked');
||
$("input[type='checkbox'][checked='true']");
||
$("input:checked");

Взято

Редактрование атрибутов тега SVG

Комментарии отключены

$('svg')[0].setAttribute('width', '100%');

Использование javascript библиотеки для построения графиков Highcharts

Комментарии отключены

Аналитика цен недвижимости на сайте www.stavropol.orr.ru

Из всего что было попробовано остановился на этой библиотеке и не прогадал. Эту библиотеку не даром даже яндекс использует в web мастере. Разобраться можно довольно быстро, есть масса примеров, api тоже не плохо описано. В общем записываю чтобы не забыть.

Ну и результаты работы с Highcharts
Аналитика стоимости 1м² жилья в Ставрополе

Ссылка на сайт проекта

Отделение десятых, сотых, тысячных от числа символом [javascript]

Комментарии отключены

Функция вставляет (в данном случае точку) после десятой, сотой, и тысячной доли числа.

var __formatSumm = function(sum)
{
    var c = sum.length, s = sum, m = "", i = 0;
    while(c--){if(i==3){m+='.'+s[c];i=0;}else{m += s[c];}i++;}
    return m.split("").reverse().join("");
}

1.000
10.000
100.000

1.000.000
10.000.000
100.000.000

1.000.000.000
10.000.000.000
100.000.000.000

UP

Для php

function __formatSumm($s)
{
    $c  = strlen($s);
    $ar = preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);
    $i  = 0;
    while($c--){if($i == 3){ $m .='.'.$ar[$c]; $i = 0;}else{ $m .= $ar[$c];}$i++;}	

    return strrev($m);
}

randomString() — уникальный, для динамического добавления к элементу DOM

Комментарии отключены

function randomString() {
    return '' + new Date().getTime();
}
function randomString(length) {
    var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');

    if (! length) {
        length = Math.floor(Math.random() * chars.length);
    }

    var str = '';
    for (var i = 0; i < length; i++) {
        str += chars[Math.floor(Math.random() * chars.length)];
    }
    return str;
}

Валидность E-mail js [RegExp]

Комментарии отключены

/**
 * @param {string} - Email
 * @param {string} - (true/false) - определяет строгую
 * проверку при которой пробелы до и после адреса считаются ошибкой
 * @returns {Boolean} - (true/false)
 */
function isValidEmail (email, strict)
{
     if ( !strict )
	email = email.replace(/^\s+|\s+$/g, '');
     return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email);
}

найдено

В input только числа

Комментарии отключены

var ar_str = $('#INPUT').val().split("");
var r  = /\d{1}/;
var nv = '';
for(var i = 0; i < ar_str.length; i++)
{
      if(r.test(ar_str[i]))
	nv +=  ar_str[i];
}
$('#INPUT').val(nv);

jQuery select [plugin]

Комментарии отключены

http://harvesthq.github.com/chosen/

jQuery слайдер контента

Комментарии отключены

Хороший слайдер контента, можно и с фото работать. http://sorgalla.com/jcarousel/

AJAX навигация по меткам

Комментарии отключены

Итак задача, нужно сохранять состояние страницы после ajax запроса. Для этого приспособили метки у ссылок, URL будет вот такого вида http://site.ru/#/key:val/key1:val1/keyN:valN/

В js далеко не гуру, но все работает и нативно.

var Navigation = function()
{
	this.isHash 		= function(){return (window.location.href.indexOf('#') !== -1 && window.location.hash.length > 1);};

	/**
	 * Возвращает все параметры из url в виде объекта
	 */
	this.getQueryParams = function(){
		if(this.isHash())
		{
			var _ar = window.location.hash.replace('#', '').split('/');
			var _ob = {};

			for(var i=0; i < _ar.length; i++){
				if(_ar[i] !== "")
					_ob[i] = _ar[i];
			}

			var returnObject = {};
			for(var j in _ob){

				if (_ob.hasOwnProperty(j)) {
					var _ar_params = _ob[j].split(':');
					returnObject[_ar_params[0]] = _ar_params[1];
				}
			}

			return returnObject;
		}

		return false;
	};

	/**
	 * Устанавливает строку параметров, если есть сотрет что было
	 */
	this.setHash = function(objectParsms){

		var ar = [], j = 0;
		for(var i in objectParsms){
			j++; ar[j]  = i + ':' + objectParsms[i];
		}

		var hashString = ar.join('/');

		if(hashString.length > 0)
			window.location.hash = '#' + hashString + '/';
	};

	this._isEmptyObject = function(Obj)
	{
		var i = 0;
		for(var o in Obj){
			i++;
		}

		return i;
	};

	this._isKeyObject = function(obj, key){

		for(var o in obj)
		{
			if(o === key)
				return true;
		}

		return false;
	};

	/**
	 * Добавляет параметр в url, если параметр уже есть то заменит значение на новое
	 */
	this.addHashParam = function(objectParams){

		if(this.isHash())
		{
			var params = this.getQueryParams();		

			for(var o in objectParams){
				if(this._isKeyObject(params, o)){
					params[o] = objectParams[o];
				}
			}

			var arRes = [], k = 0;
			for(var or in params){
				k++;arRes[k]  = or + ':' + params[or];
			}

			var str_hash = arRes.join('/');

			var ar = [], j = 0;
			for(var i in objectParams){
				if(!this._isKeyObject(params, i)){
					j++; ar[j]  = i + ':' + objectParams[i];
				}
			}

			if(ar.length > 0){
				str_hash += ar.join('/') + '/';
			}
			else{
				str_hash += '/';
			}

			window.location.hash = str_hash;
		}
		else
		{
			this.setHash(objectParams);
		}
	};

	/**
	 * Удаляет параметр из url можно указывать несколько, принимает массив ключей
	 */
	this.delHashParams = function(arParams){
		if(this.isHash())
		{
			var params = this.getQueryParams();		

			for(var a = 0; a <= arParams.length; a++){
				delete params[arParams[a]];
			}

			if(this._isEmptyObject(params) > 0)
				this.setHash(params);
			else
				window.location.hash = '';
		};
	};
};

Делать такую навигацию весьма трудоемко, но позволяет немного шире использовать ajax.

Older Entries