Tengo el siguiente marcado:jQuery acordeón: prevenir panel de apertura/cancelar evento changestart
<div id="accordion" class="leftaligned">
<div>
<h3><a href="#">Stakeholder</a></h3>
<div>Content</div>
</div>
<div>
<h3><a href="#">Relationships</a></h3>
<div>Blah blah</div>
</div>
<div>
<h3><a href="#">Address</a></h3>
<div>Yada yada</div>
</div>
<div>
<h3><a href="#">Contact Details</a></h3>
<div>Foo bar</div>
</div>
</div>
puedo crear un acordeón de la siguiente manera:
$("#accordion").accordion({
header: "h3",
fillSpace: true,
changestart: function(event, ui) {
if (someConditionIsTrue()) {
event.stopPropagation();
event.preventDefault();
return (false);
}
}
});
La idea es que hay alguna casos de uso que evitarían que el usuario cambie los paneles, sin embargo, la anulación anterior del evento no tiene ningún efecto y los paneles todavía se pueden cambiar.
¿Hay alguna manera de evitar el cambio de paneles? También traté de activar el panel actual programáticamente para evitar el cambio, pero eso desencadena otro evento changestart y todo el infierno se desata (el acordeón realmente se rompe)
+1 Esto funcionó para mí. – Byran
¿No es $ ("# accordion h3"). Unbind ("click"); ???? Consulte http://jsfiddle.net/aravindtri/SDqF2/ – Aravind
@Aravind: sí, para mí su cambio funcionó – velis