Git Product home page Git Product logo

jquery-useful-tools's Introduction

JUTs (jquery useful tools)

Набор JQuery-плагинов в том числе для работы со сложными формами -- дублирования групп полей для вложенных сущностей (например в случае, когда сущости относятся как "один ко многим")

Использование (Usage)

Некоторые плагины зависят только от jquery, другие ещё и от jquery-ui, в общем случае можно сразу подключать и то и то и сам JUTs в таком порядке:

<script src="jquery.js"></script> 
<script src="jquery-ui.js"></script> 
<script src="dist/juts-min.js"></script> 

Основные плагины JUTs

Далее описаны наиболее сложные (крупные) плагины, которые в своей работе могут использовать сразу несколько более простых плагинов JUTs. Кратно об основных:

  1. $.fromFiledsGroupAdderFromHiddenTemplate() копирует в родительский контейнер (на который и вешается событие) из скрытого шаблона
  2. $.fn.parentInParentContainerDublicator() копирует родитеский элемент для данной кнопки (ссылки), в родительский элемент ещё более высокого уровня.

Прочие плагины JUTs

  • Плагины getAttrFragment и getNameFragment Позволяют извлекать фрагмент значения атрибута вида:
people[123][groups][34][2]

по номеру (парсят квадратные скобки). Полезны напр. для работы с атрибутом name сложных форм.

  • isInputsEmpty() -- порверит пусты ли все поля-потомки данного элемента (можно проверять находится ли фрома в состоянии по-умолчанию)
  • getInputType() -- выяснит тип тега/инпута

Сброка и другая работа с npm

Сборка:

npm run-script build

Отладочная сборка

npm run-script watch

@TODO

Возможные улучшения (идеи)

  • parentInParentContainerDublicator мог бы не заменять специальную строку в прототипе с прследующей заменой значения атрибута значением из прототипа, а вообще не использовать прототип (шаблон значения атрибута в дата-атрибуте), просто указывая какой именно по порядку сегомент имени надо заменить на порядковый номер. (по аналогии с уже внедренной идеей, замены оставшихся спец, строк в шаблоне значения атрибута на аналогические реальные значения сегментам, но там каждый сегмент проверяется специально на то не является ли он подтрокой, что сложнее в том числе для использования).

  • Может можно отказаться от глобальных массивов регистраций событий и просто использовать проверку не привязано ли уже событие (так или иначе)

  • Из isInputsEmpty можно (и нужно)) выделить отдельный плагин для проверки на путстоту конткретного инпута

jquery-useful-tools's People

Contributors

vedro-compota avatar

Stargazers

Baskinkolin avatar Kontana39 avatar Migratovs avatar

Forkers

migratovs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.