Skip to content

Instantly share code, notes, and snippets.

@vaad2
Created September 2, 2016 08:19
Show Gist options
  • Save vaad2/acd7ba5fd4f1e3f111fa5953ee6708e5 to your computer and use it in GitHub Desktop.
Save vaad2/acd7ba5fd4f1e3f111fa5953ee6708e5 to your computer and use it in GitHub Desktop.
comment decrypt
'use strict';
(function ($) {
...
// обычно все нестандартные атрибуты в дату пихают
var is_support_event = supportsInputEvent()
var is_supprot_event_change = supportsPropertyChangeEvent()
...
function _getBaseScrollHeight(jq_item){
// вообще она так то как ф-я не нужна 1 раз используется
// as - префикс autoresize, на всяк пожарный ) или имени себя делай, довольно часто в дату подмазывают из других
// плагинов
if (!jq_item.data('as_height')){
//- тут как и писал clone надо делать, если за идеализьм,
// а не высчитывать размерность элемента на живых контроллах, особенно если в textarea - телега на несколько килобайт
// моргать по идее будет
....
}
// при условии что стили не поменялись иначе надо пердолить еще 1 метод, который
// насильно сбрасывает data
return jq_item.data('as_height');
}
function _setRows(jq_item){
var baseHeight = _getBase...
...
jq_item.css('overflow-y': 'auto' ); // для 1 го параметра
}
$.fn.autoResize = function(options) {
...
// this.filter('textarea') - это не надо тк, адекватные люди понимают что плагины вешаются на конкретный элемент
// все равно что взять jquery ui и вешать слайдер на br
$(this).each(function(){
// jquery по-моему умеет кешировать обертки, но я по старинке делаю
var jq_self = $(this) // чтобы при обращении повторном не вызывать конструктор
// выносим все функции которые не юзают замыкания из цикла - зачем нам их каждый раз создавать?
// я считаю нормальным когда функцию можно разбить на 3 части
// сбор параметров и инициализация, логика, подготовка и возвращение результата
}
})(jQuery)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment