He estado tratando de responder a su pregunta y he creado un pequeño código jQuery (1.5.2). Espero que esto ayude a echar un vistazo y dime ¿es esto lo que estás buscando ?, o si quieres algo más, también puedo hacerlo. En este script al hacer clic en un elemento div
con id on_off
(también puede seleccionarlo usando var!) Y class for on (on_off_on
) y off (on_off_off
) y, por cierto, puede seleccionarlos también, solo acceda al enlace jsFiddle para live demo o se puede ver la secuencia de comandos a continuación -
HTML -
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.2.min.js" ></script>
</head>
<body>
<div id="on_off" class="on_off_on" >ON</div>
</body>
</html>
CSS -
div.on_off_off
{
background: rgb(150,110,120);
font-family: segoe ui;
font-size: 12px;
font-weight: bold;
padding: 5px 10px;
border: 3px solid rgb(180, 140, 150);
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-khtml-border-radius: 5px;
color: #fff;
display: inline;
}
div.on_off_on
{
background: rgb(110,150,120);
font-family: segoe ui;
font-size: 12px;
font-weight: bold;
padding: 5px 10px;
border: 3px solid rgb(140, 180, 150);
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-khtml-border-radius: 5px;
color: #fff;
display: inline;
}
Código jQuery -
$(document.body).ready(function() {
$(function() {
var main_obj_id = 'on_off';
var on_class = 'on_off_on';
var off_class = 'on_off_off';
$('#' + main_obj_id).click(function() {
if ($(this).is('.' + on_class)) {
$(this).removeClass(on_class);
$(this).addClass(off_class);
$(this).html('OFF');
} else {
$(this).removeClass(off_class);
$(this).addClass(on_class);
$(this).html('ON');
}
});
});
});
Espero que esto ayude!
No es posible sin JavaScript (a menos que envíe cada clic como un enlace al servidor y use php para modificar el div, lo que espero que no desee hacer). No recomendaría hacer esto a menos que realmente no pueda hacerlo con casillas de verificación porque hará que el sitio no se pueda usar para las personas sin JavaScript habilitado. – Czechnology
En realidad puede * casi * hacer esto colocando una casilla de verificación real sobre otro elemento y dándole 0% de opacidad, y una altura y ancho según sea necesario.Sin embargo, hacer que algo visual suceda en función del estado de la casilla de verificación dependerá del soporte del navegador para la pseudoclase ": comprobada", que creo que sigue siendo limitada. – Pointy