?

Log in

No account? Create an account
Main

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 объекта

Comments

Чтоб место резервировалось, можно использовать не display:none|block, а visibility:hidden|visible. Дальше уже материал для холивара: можно текст в ссылке не писать, оставить её пустой и явно указать размеры под иконку; можно и текст написать, но с помощью правил CSS сделать так, чтобы он не отображался и не влиял на размеры ссылки — в этом случае разметка будет наиболее точно отражать содержимое документа, а CSS будет отображать его так, как задумано дизайнером. Естественно, чем "правильнее" идеологически мы начинаем что-то делать, тем больше возможных граблей мы встретим на своём пути :) Тут уже всё зависит от опыта и уровня знания матчасти. Иногда, естественно, проще сделать так, чтоб работало, и не париться над деталями реализации. (этим я снимаю с себя ответственность за возможный ущерб, упущенную выгоду и бла-бла-бла :)
в любом случае спасибо.
хорошая пища для ума.