Tôi đã thực hiện kiểm soát fieldset có thể thu gọn tùy chỉnh trong asp.net. Tôi sử dụng jquery để thêm các hiệu ứng chuyển đổi. Kiểm soát hoạt động hoàn hảo nhưng khi tôi đang sử dụng các fieldets của tôi bên trong một updatepanel, afer postback tôi mất logic jquery của tôi vì document.ready.JQuery Live() không hoạt động
Bây giờ tôi đã đọc về hàm Live() mới của Jquery nhưng tôi không làm cho nó hoạt động. Tôi làm gì sai? Có ai đó trả lời không ??
Thanks a lot
mã jQuery của tôi là:
$(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 Tôi thích ý tưởng sử dụng CSS (thu gọn/mở rộng) hoàn toàn CSS qua chiều rộng biên giới – adardesign
Bạn có chắc chắn live() thậm chí còn được gọi không? – RamboNo5