Quiero el contenido de #rad-btn::before
restar cada vez #rad-btn
se empuja hasta que finalmente llega a cero (después de 12 empujes).
$(document).ready(function() {
$("#rad-btn").click(function() {});
});
#rad-btn::before {
content: "12";
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="rad-btn" href="#">
<img src="/images/img/rad-btn2.png">
</a>
Alguien sabe como hacer esto?
Respuestas
1 para la respuesta № 1Utilizar data-*
, attr()
a content
para hacer referencia a la data-*
atributo, Element.dataset
$(document).ready(function() {
$("#rad-btn").click(function(e) {
e.preventDefault();
if (this.dataset.btn > 0) {
this.dataset.btn = --(this.dataset.btn)
}
})
})
#rad-btn::before {
content: attr(data-btn);
}
#rad-btn {
width: 100px;
padding: 8px;
border: 2px solid blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<a id="rad-btn" href="#" data-btn="12">
<img src="/images/" alt="image">
</a>
0 para la respuesta № 2
Puedes usar css attr()
para establecer el contenido y luego ajustar el valor de ese atributo
$("#rad-btn").click(function(e) {
e.preventDefault();
$(this).attr("data-num", function(_, curr) {
return curr - 1 > 0 ? curr - 1 : 0;
});
});
#rad-btn::before {
content: attr(data-num);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="rad-btn" href="#" data-num="12"></a>
0 para la respuesta № 3
Si está buscando otro enfoque o no puede cambiar el marcado, puede usar:
counter-reset
con un valor inicial de12
.counter-increment
con un valor negativo, para disminuir en1
cada vez que se hace clic en el ancla.counter()
función css en elcontent
propiedad del pseudo-elemento::before
para mostrar el número.
$(document).ready(function() {
(function() {
var x = -1;
$("#rad-btn").on("click.mycounter", function(e) {
e.preventDefault();
if (x === -12) {
$(this).off("click.mycounter");
}
$(this).css("counter-increment", "mycounter " + x);
x--;
});
})();
});
#rad-btn {
counter-reset: mycounter 12;
}
#rad-btn::before {
content: counter(mycounter);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="rad-btn" href="#">
<img src="/images/" alt="image">
</a>