Boroda aka Hamster (fantaseour) wrote,
Boroda aka Hamster
fantaseour

Category:

jQuery. Плагин для работы со ссылками

Когда используешь ajax приходится фиксировать изменившееся состояние приложения. Например вызвал я окно с формой и добавил некоторый параметр. Скажем это каталог и я хочу, чтобы в текущем окне если у товара не указана страна-изготовитель, то использовалась например Уганда.

Отлично. Вытащил формочку, кроме Уганды указал еще чего-нибудь. Закрыл формочку. Состояние хранится в переменных JS. Если я перегружу страницу, то все пропадет. Если я кликну по сортировке или по номеру страницы, то все также потеряется.

Иначе говоря надо чтобы в строке браузера текущая локация получила бы добавку в виде &country=Uganda, и все ссылки в пагинаторе и все ссылки в заголовках столбцов, используемые для сортировки тоже получили свою добавку. Также пусть получат добавку ссылки на правку продукта, чтобы в форме выставить страну, если ее нет.

Если для генерации урлов с параметрами есть встроенны механизм jQuery.param, то для того чтобы подкорректировать ссылки такого механизма нет (что если у ссылки нет знака ? или там в конце стоит #, т.е. просто так дописать &coutry=Uganda в конец ссылки не кошерно).

Нашел удобный плагин
jQuery BBQ: Back Button & Query Library

PS. я вообще-то не очень опытный пользователь jQuery, поэтому был рад открытию для себя .wrap(). Например изменилось состояние системы и надо разрешить с объектом некотрое действие, обозначаемое иконкой со ссылкой. Пока действие было недоступно мы показывали пустую картинку без ссылки, а как только действие стало доступным, меняем картинку с пустой на значимую и оборачиваем объект ссылкой:

$('#modicon').attr("src",'/icons/pageadd.png').wrap('<a href='/items/'+id+'/mod' />); //id -- заранее известный id объекта
Tags: development, javascript
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments