Хотелось бы посмотреть, сможет ли кто-нибудь из сообщества улучшить этот код.
ЦЕЛЬ: Приложение заполнено элементами ввода, стилизованными под пользовательские кнопки.Они бывают разных типов, например, «отправить», «сброс» и «кнопка».Когда пользователь нажимает кнопку (т. Е. Щелкает ее мышью на ПК или касается экрана в нужном месте на устройстве с сенсорным экраном, например, BlackBerry), текст и фон кнопки должны измениться, чтобы показать, что кнопка была нажата.Текст и фон должны вернуться, прежде чем будет выполнено действие, связанное с кнопкой - чтобы указать, что кнопка была отпущена.
Вот фрагмент кода, который я имею для моего решения - может кто-нибудь увидеть способы улучшения / уменьшения/ refactor?
<script type="text/javascript">
$(document).ready(function () {
RegisterJQueryFunctions();
});
</script>
Во внешнем файле:
function RegisterJQueryFunctions() {
$('input[type=submit], input[type=button], input[type=reset]').mousedown(function () {
// Record the original font and BG colors so we can revert back to them in 'delight'
var originalFont = $(this).css("color");
var originalBG = $(this).css("background-color");
$(this).data("originalFont", originalFont);
$(this).data("originalBG", originalBG);
$(this).highlightBG();
$(this).highlightFont();
});
$('input[type=submit], input[type=button], input[type=reset]').mouseup(function () {
$(this).revertFont();
$(this).revertBG();
});
$.fn.highlightFont = function (highlightFontColor) {
var highlightFont = highlightFontColor || "#FFFFFF"; // Defaults to white
$(this).css("color", highlightFont);
};
$.fn.highlightBG = function (highlightBGColor) {
var highlightBg = highlightBGColor || "#FF7F00"; // Defaults to orange
$(this).css("background-color", highlightBg);
};
$.fn.revertFont = function () {
var originalFont = $(this).data("originalFont");
if (!originalFont.length)
originalFont = "#000000"; // Defaults to black in case data attribute wasn't set properly in highlightFont
$(this)
.css("color", originalFont);
};
$.fn.revertBG = function () {
var originalBG = $(this).data("originalBG");
if (!originalBG.length)
originalBG = "#FEC800"; // Defaults to orange in case data attribute wasn't set properly in highlightFont
$(this)
.css("background-color", originalBG);
};
}