He creado una lista en mi sitio. Esta lista es creada por un bucle foreach que se construye con información de mi base de datos. Cada elemento es un contenedor con diferentes secciones, por lo que esta no es una lista como 1, 2, 3 ... etc. Estoy enumerando secciones repetidas con información. En cada sección, hay una subsección. La construcción general es la siguiente:
<div>
<fieldset class="majorpoints" onclick="majorpointsexpand($(this).find('legend').innerHTML)">
<legend class="majorpointslegend">Expand</legend>
<div style="display:none" >
<ul>
<li></li>
<li></li>
</ul>
</div>
</div>
Entonces, estoy tratando de llamar a una función con onclick = "majorpointsexpand ($ (this) .find ('legend'). InnerHTML)"
El div que estoy tratando de manipular es style = "display: none" por defecto, y quiero usar javascript para hacerlo visible al hacer clic.
El "$ (this) .find ('legend'). InnerHTML" está intentando pasar, en este caso, "Expandir" como un argumento en la función.
Aquí está el javascript:
function majorpointsexpand(expand)
{
if (expand == "Expand")
{
document.write.$(this).find('div').style = "display:inherit";
document.write.$(this).find('legend').innerHTML = "Collapse";
}
else
{
document.write.$(this).find('div').style = "display:none";
document.write.$(this).find('legend').innerHTML = "Expand";
}
}
Estoy casi 100% seguro de que mi problema es la sintaxis, y no tengo mucha idea de cómo funciona JavaScript.
Tengo jQuery vinculado al documento con:
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
En la <head></head>
sección.
fuente
$(this)
. Espero que esto ayude.Respuestas:
Bien, tienes dos opciones aquí:
fieldset
(no es semánticamente correcto usarlo para esto de todos modos) y crear una estructura usted mismo.Así es como lo haces. Crea una estructura HTML como esta:
Con este CSS: (Esto es para ocultar las
.content
cosas cuando se carga la página.Luego, usando jQuery, escriba un
click
evento para el encabezado.Aquí hay una demostración: http://jsfiddle.net/hungerpain/eK8X5/7/
fuente
qué tal si:
jQuery:
HTML
Violín
De esta manera, vincula el evento de clic a la
.majorpoints
clase y no tiene que escribirlo en HTML cada vez.fuente
Entonces, en primer lugar, su Javascript ni siquiera usa jQuery. Hay un par de maneras de hacer esto. Por ejemplo:
Primera forma, usando jQuery
toggle
método :jsFiddle: http://jsfiddle.net/pM3DF/
Otra forma es simplemente usar el
show
método jQuery :jsFiddle: http://jsfiddle.net/Q2wfM/
Sin embargo, una tercera forma es utilizar el
slideToggle
método de jQuery que permite algunos efectos. Como el$('#showMe').slideToggle('slow');
que mostrará lentamente el div oculto.fuente
<li>
elementos, no divs. De cualquier manera, podría usar el ID del elemento y luego ocultarlo.Es posible que desee echar un vistazo a este método simple de Javascript que se invoca al hacer clic en un enlace para hacer que un panel / div se expanda o colapse.
Puede pasar la ID div y alternará entre mostrar 'ninguno' o 'bloquear'.
Fuente original en snip2code : cómo contraer un div en html
fuente
Muchos problemas aqui
Configuré un violín que funciona para ti: http://jsfiddle.net/w9kSU/
fuente
prueba jquery,
fuente
Aquí está mi ejemplo de animación de una lista de personal con una descripción ampliada.
Violín
fuente
Eche un vistazo a la función
toggle()
jQuery :http://api.jquery.com/toggle/
Además, la función
innerHTML
jQuery es.html()
.fuente
Como tiene jQuery en la página, puede eliminar ese
onclick
atributo y lamajorpointsexpand
función. Agregue la siguiente secuencia de comandos al final de su página o, preferiblemente, a un archivo .js externo:Esta solución debería funcionar con su HTML tal como está, pero en realidad no es una respuesta muy sólida. Si cambia su
fieldset
diseño, podría romperlo. Le sugiero que ponga unclass
atributo en ese div oculto, comoclass="majorpointsdetail"
y use este código en su lugar:Obs: no hay una
</fieldset>
etiqueta de cierre en su pregunta, así que supongo que el div oculto está dentro del conjunto de campos.fuente
Si usó el rol de datos colapsable, por ejemplo
luego cerrará el div expandido
fuente
Consulte la biblioteca Readmore.js de Jed Foster .
Su uso es tan simple como:
Estas son las opciones disponibles para configurar su widget:
El uso puede usarlo como:
Espero que ayude.
fuente