Скрипт, меняющий атрибут title у элемента
На сайте есть оценка материалов, вот html код:
<ul id="uStarRating480" class="u-star-rating" title="Рейтинг: 0.0/0"> <li class="u-current-rating" id="uCurStarRating480" style="width:0%;"></li> <li class="u-star-li-480"><a href="#" onclick="ustarrating('480',1);return false;" class="u-one-star">1</a></li> <li class="u-star-li-480"><a href="#" onclick="ustarrating('480',2);return false;" class="u-two-stars">2</a></li> <li class="u-star-li-480"><a href="#" onclick="ustarrating('480',3);return false;" class="u-three-stars">3</a></li> <li class="u-star-li-480"><a href="#" onclick="ustarrating('480',4);return false;" class="u-four-stars">4</a></li> <li class="u-star-li-480"><a href="#" onclick="ustarrating('480',5);return false;" class="u-five-stars">5</a></li></ul> Нужно, чтобы в зависимости от звездочки, на которую навели курсор, появлялся текст "плохо", "хорошо"... Подкиньте пожалуйста идею как это реализовать |
удалено.
|
Gozar, спс.
Получилось: $(function(){ $(".u-star-li-480 a.u-one-star").mouseover(function(){document.getElementById("uStarRating480").title="Ужасно";}); $(".u-star-li-480 a.u-two-stars").mouseover(function(){document.getElementById("uStarRating480").title="Плохо";}); $(".u-star-li-480 a.u-three-stars").mouseover(function(){document.getElementById("uStarRating480").title="Средне";}); $(".u-star-li-480 a.u-four-stars").mouseover(function(){document.getElementById("uStarRating480").title="Хорошо";}); $(".u-star-li-480 a.u-five-stars").mouseover(function(){document.getElementById("uStarRating480").title="Шедевр";}); }); а через $ до title добраться не получилось( |
>$(".u-star-li-480 a.u-one-star").mouseover(function(){document.getElementByI d("uStarRating480").title="Ужасно";});
>Ужасно |
Если делать без говнокода, то можно попробовать вот так:
jQuery(function ($) { $(".u-star-li-480").mouseover(function (event) { var c = event.target.className.match(/-(\w+)-/)[1]; if (c) $("#uStarRating480").attr("title", { one: "Ужасно", two: "Плохо", three: "Средне", four: "Хорошо", five: "Шедевр" }[c]); }); }); |
удалено.
|
Код ТС был написан путём нажатий Ctrl-C Ctrl-V, что есть главный признак говнокода.
|
exec,
спасибо, постараюсь разобраться |
удалено.
|
Gozar,
он в два раза короче; интересно узнать какой работает быстрее |
Gozar, всего один обработчик на один элемент (вместо пяти, как в варианте ТС-а) + мой код глаза не режет.
|
удалено.
|
Я бы так не сказал, наверное пожалуй не мение важный фактор жаваскрипта после его работоспособности это объем кода, так как скорость зависит от браузера и компа. К тому же его изменять проще, не нужно в каждой строчке изменять что то, а все один раз. И загружаться такая страничка будет быстрее.
|
удалено.
|
В данном случае никаких, но если писать большой проект с таким подходом то будет ощутимо. Хотя ИМХО использование JQuery для реализации только этого куска кода уже не совсем целесообразно.
Да и встречный вопрос, зачем писать лишний код если можно написать гораздо компактнее? Ведь по сути обычному пользователю фиолетово ему главное лишь бы работало стабильно. |
удалено.
|
Цитата:
Цитата:
|
удалено.
|
Цитата:
|
удалено.
|
Вот ради прицнипа скопировал оба варианта реализации в блокнот:
С копипастом весит: 605 байт Оптимизированый: 281 байт Разница есть и ощутима, 50% экономии. |
удалено.
|
удалено.
|
Цитата:
|
Цитата:
|
удалено.
|
удалено.
|
Да в любом коде приходится разбираться, в конце концов я же не заставляю Вас писать так а не иначе, как хотите так и пишите я выразил свою точку зрения и для меня важна компактность...
|
удалено.
|
объясните пожалуйста, что значит
var c = event.target.className.match(/-(\w+)-/)[1]; ? |
удалено.
|
"регулярное выражение", спс
|
Читабельность, конечно же, важна, но она не должна быть в ущерб производительности. Тем более, если речь идет о крупных проектах.
Для плохочитабельных (и не только) участков кода давным-давно придуманы комментарии. И не зря же в вакансиях пишут: "Умение читать чужой код". На объем кода можно забить, если юзать компрессоры. |
удалено.
|
удалено.
|
удалено.
|
удалено.
|
Gozar,
проблема в том, что html код генерируется автоматически, так что title прописать я не могу |
А какие проблемы с getElementById?
|
удалено.
|
Часовой пояс GMT +3, время: 23:54. |