Ãœðù - Xakep Online
Ãœðù - Xakep Online
Ãœðù - Xakep Online
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
coding<br />
Вот так будет выглядеть «чистильщик» кода Всплывающая подсказка<br />
с классами. Для манипуляций с ними нам<br />
доступно три основных функции:<br />
• addClass – добавляет указанный класс данному<br />
элементу;<br />
• removeClass – удаляет указанный класс у<br />
данного элемента;<br />
• toggleClass – добавляет или удаляет класс в<br />
зависимости от наличия его у элемента.<br />
Давай сделаем более юзабельной кнопочку<br />
типа submit, которая отправляет форму на<br />
сервер. Очень бы хотелось сделать ее недоступной<br />
после первичного обращения к ней,<br />
чтобы пользователь не отправлял сообщение<br />
несколько раз подряд, ведь бывают нервные<br />
юзеры ;). Чтобы этого добиться, надо изменить<br />
атрибут disabled.<br />
Однако мои эстетические воззрения требуют<br />
еще и поменять визуальное изображение нажатой<br />
кнопки, например изменить фон, границу<br />
или надпись. Нам необходимо определить в CSS<br />
два класса — enabled и disabled. По умолчанию<br />
у кнопки будет класс enabled, а после нажатия<br />
— disabled:<br />
Меняем класс у нажатой кнопки<br />
JavaScript<br />
$("#submit-button").click(<br />
function() {<br />
$(this).attr<br />
({disabled : "true"});<br />
$("#submit-button").<br />
addClass("disabled");<br />
});<br />
Ролловер<br />
Середина статьи уже далеко позади, поэтому<br />
хотелось бы рассмотреть комплексный пример.<br />
В качестве него мы сделаем полноценный ролловер.<br />
Для самых маленьких читателей поясню,<br />
что rollover — это такая красивая кнопочка, которую<br />
можно нажать. Но не только: при наведении<br />
на нее курсора мышки и нажатии, изображение<br />
на кнопке меняется (смотри рисунок).<br />
Договоримся о том, в каких файлах у нас будут<br />
храниться эти изображения:<br />
• .jpg – исходное изображение кнопки;<br />
• _hover.jpg – кнопка при наведении мышки;<br />
• _click.jpg – нажатая кнопка.<br />
Чтобы внести ясность, приведу конкретный<br />
пример. Если основной файл называется<br />
button.jpg, то вспомогательные будут именоваться<br />
button_hover.jpg и button_click.jpg.<br />
Реализовывать ролловер на HTML будем с<br />
помощью тэга ввода с типом «изображение»:<br />
<br />
Теперь проясняется механизм работы самого<br />
скрипта: нам надо найти все элементы input<br />
с типом image и в зависимости от события<br />
поменять атрибут src. Поскольку смена имени<br />
файла будет происходить при трех событиях,<br />
вынесем этот функционал в отдельную функцию<br />
changeFilename:<br />
Меняем имя файла<br />
JavaScript<br />
function changeFilename(input,<br />
count, suffix)<br />
{<br />
var filename = $(input).<br />
attr("src");<br />
filename = filename.substr(0,<br />
filename.length-count);<br />
filename = filename + suffix +<br />
".jpg";<br />
$(input).attr( {src: filename});<br />
}<br />
Если присмотреться, то легко заметить, что<br />
эта функция берет значение атрибута src из<br />
элемента input, отрезает от имени файла count<br />
символов и добавляет suffix плюс расширение<br />
«.jpg». Фактически она меняет один суффикс<br />
(конец имени) файла на другой. Теперь осталось<br />
грамотно применить эту функцию.<br />
Для выбора нужных элементов будем использовать<br />
конструкцию $("input[@type=image]"),<br />
которая найдет все инпуты с типом image. При<br />
наведении курсора мышки на ролловер, нам<br />
нужно отрезать «.jpg» (4 символа) от имени файла<br />
и добавить «_hover.jpg». Вернуть все надо,<br />
когда мышка над другим элементом.<br />
Меняем изображение при наведении<br />
мышки<br />
JavaScript<br />
$("input[@type=image]").hover(<br />
function() { changeFilename(this,<br />
4, "_hover"); }, function() {<br />
changeFilename(this, 10, ""); });<br />
Написать обработчик нажатия мышки тоже<br />
труда не составит. В качестве события я выбрал<br />
mousedown, вместо click. Честно говоря, хотел<br />
показать, что не кликом единым живы ;). От имени<br />
файла надо откромсать «_hover.jpg» (мышка<br />
наведена), то есть 10 символов, и дописать<br />
«_click.jpg»:<br />
Меняем изображение<br />
по клику мышкой<br />
JavaScript<br />
$("input[@type=image]").<br />
mousedown( function() {<br />
changeFilename(this, 10,<br />
"_click");});<br />
Отмечу, что ролловер у нас получился довольно<br />
универсальный. Чтобы применить его, надо<br />
создать три файла, которые соответствуют<br />
состояниям кнопки, и использовать элемент<br />
input с атрибутом image. Неплохо для десятка<br />
строчек кода ;).<br />
«Вордатор»<br />
На десерт осталось уже настоящее веб-приложение<br />
— «Вордатор». Оно будет очищать HTML<br />
от лишнего кода, вставленного визуальными<br />
редакторами, например Word’ом. Интерфейс у<br />
нас будет несложным, поскольку нам требуется<br />
всего лишь два поля ввода и переключатели<br />
опций (смотри рисунок).<br />
Чтобы создать такую форму, проще всего<br />
воспользоваться таблицами. С этим, я думаю,<br />
проблем не возникнет. Для описания отдельных<br />
элементов надо использовать традиционные<br />
тэги HTML: label, textarea, input,<br />
button. Необходимо обязательно прописать<br />
идентификаторы элементов, чтобы мы смогли<br />
обрабатывать события и получать содержимое<br />
/ 130<br />
xàêåð 05 /101/ 07