Для получения полного доступа
зарегистрируйтесь.

Раздел:
Подраздел:
Языки:


Gravatar image
Nepster
  • Репутация: 151
  • Сниппеты: 19
  • Ревизии: 0

GUID (Globally Unique Identifier) — статистически уникальный 128-битный идентификатор.

function guid() {
  function s4() {
    return Math.floor((1 + Math.random()) * 0x10000)
      .toString(16)
      .substring(1);
  }
  return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
  	s4() + '-' + s4() + s4() + s4();
}

Результат: 9e24e277-8524-812a-9c3f-4930444d74de

IStranger
  • Репутация: 17
  • Сниппеты: 8
  • Ревизии: 0

Часто бывает необходимо удалить классы, начинающиеся с определенной строки. Например: has-state-active, has-state-pending, has-state-disabled. Простейший и очевидный способ - это использовать символы подставноки: has-state-*.

Продолжение »

IStranger
  • Репутация: 17
  • Сниппеты: 8
  • Ревизии: 0

"Золотые" правила оптимизации фронтэнда часто рекомендуют подключать все JS скрипты в конце страницы. Однако обычно нам строго необходимо подлючать <script src="//jquery.js"> в <head> страницы, и мы не можем его оттуда удалить, поскольку контент страницы может содержать onReady-обработчики, например $(function(){ ... }). Такие обработчики обычно вставляются автоматически сторонними виджетами, CMS, фреймворками.

Этот короткий скрипт позволяет переместить подключение jquery.js из <head> в конец <body> без изменения имеющихся onReady-обработчиков на странице.

Продолжение »

Gravatar image
serieznyi
  • Репутация: 2
  • Сниппеты: 1
  • Ревизии: 0

Не мое. Взято отсюда https://gist.github.com/mudassir0909/ed7eceb5d20e65721f63

Selectize.define( 'clear_selection', function ( options ) {
    var self = this;

    //Overriding because, ideally you wouldn't use header & clear_selection simultaneously
    self.plugins.settings.dropdown_header = {
        title: 'Clear Selection'
    };
    this.require( 'dropdown_header' );

    self.setup = (function () {
        var original = self.setup;

        return function () {
            original.apply( this, arguments );
            this.$dropdown.on( 'mousedown', '.selectize-dropdown-header', function ( e ) {
                self.setValue( '' );
                self.close();
                self.blur();

                return false;
            });
        }
    })();
});
Gravatar image
jumper423
  • Репутация: 58
  • Сниппеты: 9
  • Ревизии: 2

Smoothsort.gifGitHub / Демо

Плавная сортировка вертикальных элементов.

Главной задачей было добиться максимальной быстрой скорости сортировки и отрисовки, без лишних действий. Данный плагин предназначен для узкого списка задач, по этому на супер функциональность в нём можете не рассчитывать.

Так же есть AssetBundle для Yii2 SmoothSortAsset

Продолжение »

Gravatar image
zular
  • Репутация: 36
  • Сниппеты: 7
  • Ревизии: 0

В своей работе мне понадобилось создать REST интерфейс, и обращаться на бек через GET параметры. Привожу сниппет в нескольких примерах на JS и JQ.

//JS версия

var obj = {
    param1: 'something',
    param2: 'somethingelse',
    param3: 'another',
    bla: {
        param5: 'i\'m nested!',
        ja: {
            param6: 'i am really nested'
        }
    }
};

var serialiseObject = function(obj) {
    var pairs = [];
    for (var prop in obj) {
        if (!obj.hasOwnProperty(prop)) {
            continue;
        }

        if (Object.prototype.toString.call(obj[prop]) == '[object Object]') {
            pairs.push(serialiseObject(obj[prop]));
            continue;
        }

        pairs.push(prop + '=' + obj[prop]);
    }
    return pairs.join('&');
}

console.log(serialiseObject(obj));

// param1=something&param2=somethingelse&param3=another&param5=i'm nested!&param6=i am really nested

// jQuery версия
var params = { width:1680, height:1050 };
var str = jQuery.param( params );

console.log(str)
// width=1680&height=1050
Gravatar image
opotemkin
  • Репутация: 11
  • Сниппеты: 4
  • Ревизии: 0

Исходные данные:

  • Bootstrap 3 (исполняется функция tooltip), либо это может быть кастомный javascript
  • API Yandex Map

Скрипт должен отработать при открытии Балуна:

objectManager.objects.events.add('balloonopen', function (e) {
        $('[data-toggle="tooltip"]').tooltip();
});

Проблема у меня, и у многих, кого я прочитал в Интернете складывается из-за того, что пытаются выполнить скрипт методом "open". "balloonopen" позволяется работать с данными именно после открытия Балуна

dfatt
  • Репутация: 260
  • Сниппеты: 53
  • Ревизии: 7

Если вам нужно, чтобы открытый popover в Boostrap 3 по наведению не скрывался, пока курсор на самом popover, вам поможет следующее решение.

Демо 97f041fdf9247cf838713969b2855d0b.gif

Продолжение »

Gravatar image
opotemkin
  • Репутация: 11
  • Сниппеты: 4
  • Ревизии: 0

Для этого необходимо выставить параметр "hideIconOnBalloonOpen" в значение false:

// Создаем метку.
var placemark = new ymaps.Placemark([56.75,60.62], {
    balloonContent: '...',
    iconContent: "..."
}, {
    preset: "islands#lightBlueDotIcon",
    // Балун открывается, метка при этом не закрывается
    hideIconOnBalloonOpen: false
});

geoMap.geoObjects.add(placemark);

Либо, если используете objectManager:

var myObjectManager = new ymaps.ObjectManager({
	clusterize: true,
	geoObjectOpenBalloonOnClick: false
});
objectsAll.push({
    type: 'Feature',
    geometry: {
      type: 'Point',
      coordinates: [56.75,60.62]
    },
    options: {
		// Балун открывается, метка при этом не закрывается
        hideIconOnBalloonOpen: false
    }
});

myObjectManager.add(objectsAll);
myMap.geoObjects.add(myObjectManager);
Маклай
  • Репутация: 8
  • Сниппеты: 1
  • Ревизии: 2

Эту функцию удобно использовать для вывода чисел пользователю.

var roundCount = function (number) {
    if (number > 999 && number <= 999999){
       return number / 1000 + 'k';
    } else if (number > 999999){
        return '>1M';
    } 
    return number;
};