Я сделал пользовательское разборное управление fieldset в asp.net. Я использую jQuery для добавления эффектов переключателя. Управление работает отлично, но когда я использую свой fieldsets в updatepanel, afer обратная передача я освобождаю свою логику jQuery из-за document.ready.
Теперь я считал о новом Живом () функцию JQuery, но я не получаю его работа. Что я делаю неправильно? У кого-то есть ответ??
Большое спасибо
Мой код JQuery:
$(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();
});
Проблема в том, что вы делаете больше, чем просто простой селектор для вашего живого выбора
из API.jquery.com «Методы обхода DOM не полностью поддерживаются для поиска элементов для отправки на .Live (). Скорее, метод .live () всегда должен быть вызван непосредственно после выбора"
if (obj.hasClass('collapsed')) {
obj.removeClass('collapsed').addClass('SmartFieldSetCollapsible'); }
$(this).removeClass('collapsed');
Сначала вы хотите удалить класс A A добавить еще один класс, если он имеет класс рухнул, а затем вы удалите класс рухнул. Я не знаю, влияет на работу системы, но стоит попробовать.
работает работает функция, если вы просто используете .Click (когда поле не обновляется)?