He creado un control de conjunto de campos colapsable personalizado en asp.net. Yo uso jquery para agregar los efectos de alternar. El control funciona perfectamente, pero cuando estoy usando mis conjuntos de campos dentro de un panel de actualización, después de una devolución de datos, pierdo mi lógica de jquery debido al documento.JQuery Live() no funciona
Ahora que he leído sobre la nueva función Live() de Jquery, pero no lo hago funcionar. ¿Qué hago mal? ¿Alguien tiene la respuesta?
Muchas gracias
Mi código jQuery es:
$(document).ready(function() {
$.fn.collapse = function(options) {
var defaults = { closed: false }
settings = $.extend({}, defaults, options);
return this.each(function() {
var obj = $(this);
obj.find("legend").addClass('SmartFieldSetCollapsible').live("click", function() {
if (obj.hasClass('collapsed')) {
obj.removeClass('collapsed').addClass('SmartFieldSetCollapsible'); }
$(this).removeClass('collapsed');
obj.children().next().toggle("slow", function() {
if ($(this).is(":visible")) {
obj.find("legend").addClass('SmartFieldSetCollapsible');
obj.removeAttr("style");
obj.css({ padding: '10px' });
obj.find(".imgCollapse").css({ display: 'none' });
obj.find(".imgExpand").css({ display: 'inline' });
}
else {
obj.css({ borderLeftColor: 'transparent', borderRightColor: 'transparent', borderBottomColor: 'transparent', borderWidth: '1px 0px 0px 0px', paddingBottom: '0px' });
obj.find(".imgExpand").css({ display: 'none' });
obj.find(".imgCollapse").css({ display: 'inline' });
}
});
});
if (settings.closed) {
obj.addClass('collapsed').find("legend").addClass('collapsed');
obj.children().filter("p,img,table,ul,div,span,h1,h2,h3,h4,h5").css('display', 'none');
}
});
};
});
$(document).ready(function() {
$("fieldset.SmartFieldSetCollapsible").collapse();
});
+1 Me gusta la idea de usar la flecha (colapsado/expandido) totalmente CSS a través de la frontera Ancho – adardesign
¿Seguro viven() es incluso llamó? – RamboNo5