Pregunta

Estoy realmente atascado ... Necesito un consejo urgente: D aquí está mi html:

<!-- Beginning of ROW !-->
<div id="row1">
 <div id="entry">
  free
  <span>some text</span>
  <p>DKK</p>
  <input type="radio" name="red<% Response.Write(counter); %>" id="radio" value="0" />
 </div>

 <div id="entry">
  week
  <span></span>
  <p>DKK</p>
  <input type="radio" name="red<% Response.Write(counter); %>" id="radio2" value="75" />
 </div>
</div>
<!-- End of ROW !-->

<!-- Beginning of ROW !-->
<div id="row2">
 .... same as in row 1
</div>
<!-- End of ROW !-->

nth row ..

Aquí está Jquery:

$("input").click(function() {
     $("input").parent("div").css("background", "url(images/div_bg.png)");
     $(this).parent("div").css("background", "url(images/div_bg_hover.png)");
});

Lo que estoy tratando de hacer ... es cuando selecciono una entrada de radio, el div en el que se encuentra debería cambiar de fondo y funciona perfectamente si solo hay una fila, pero por ejemplo si intento seleccionar el valor en la primera fila, luego selecciono el valor en la segunda fila ... el div en la segunda fila donde se ubica la entrada de radio cambia de fondo como debería, pero el div en la primera fila se invierte a otro fondo aunque la entrada permaneció marcada ... esto es lo que soy tratando de lograr

 texto alternativo

Y aquí es lo que logro:

 texto alternativo

¿Fue útil?

Solución

¿Cuál es el propósito de tu segunda línea de jQuery?

$("input").parent("div").css("background", "url(images/div_bg.png)");

Esto restablecerá el fondo de todas las entradas " " divs Si entiendo tu objetivo correctamente creo que quieres:

$(this).parent("div").siblings("div.entry").css("background", "url(images/div_bg.png)");

De esa manera, solo los hermanos de la entrada que estás cambiando restablecerán sus fondos.

En una nota al margen, tienes varios divs con el mismo ID, lo que no es una buena idea.

Otros consejos

Esta línea: $ (" entrada "). parent (" div "). css (" background " ;, " url (images / div_bg.png) " está causando Todos los demás elementos se restablecerán a la normalidad, lo que le permite tener solo 1 estado activo a la vez. Puede acceder a la fila para que cada fila tenga un elemento seleccionado.

Solo está asignando comportamiento al elemento en el que se hizo clic, en lugar de a todos los cuadros de entrada seleccionados. Es posible que desee realizar una función como tal:

function foo()
{
   $('input :selected').css(bar);
}

Ahora, cada vez que obtenga un evento de clic en un evento de entrada, llame a la barra. Es posible que deba modificar foo para cumplir con sus especificaciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top