JSFiddle - React, Tailwind, and code Playground

by Alejandro

HTML

<div class="leftArrow">&lt;</div>
<input type="text" value="1" />
<div class="rightArrow">&gt;</div>

CSS

body {
    padding: 10px;
}
div, input {
    display: inline-block;
    moz-border-radius: 3x;
    webkit-border-radius: 3px;
    border-radius: 3px;
}
div {
    background-color: blue;
    color: white;
    font-weight: bold;
    padding: 0.3em 0.5em;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
div:hover {
    cursor: pointer;
}
input {
    width: 30px;
    font-size: 14px;
    padding: 5px 2px;
    text-align: center;
    border: 1px solid gray;
}
.dim {
    opacity: 0.2;
}
.dim:hover {
    cursor: default;
}

JavaScript

// Set variables
var currentValue = parseInt($('input').val(), 10);
var minNum = 1;
var maxNum = 4;

// On page load, disable arrow if min or max is default value
if (currentValue == minNum) {
    $('.leftArrow').addClass('dim');
}
if (currentValue == maxNum) {
    $('.rightArrow').addClass('dim');
}

// Click events
$('.leftArrow').click(function() {
    if (currentValue != minNum) {
		currentValue--;
		$('input').val(currentValue);
		$('.rightArrow').removeClass('dim');
    }
	if (currentValue == minNum) {
		$('.leftArrow').addClass('dim');
	}
});
$('.rightArrow').click(function() {
    if (currentValue != maxNum) {
		currentValue++;
		$('input').val(currentValue);
		$('.leftArrow').removeClass('dim');
    }
	if (currentValue == maxNum) {
		$('.rightArrow').addClass('dim');
	}
});