Живой jQuery () не работа

Я сделал пользовательское разборное управление 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();

});
5
задан Marek Karbarz 31 January 2010 в 17:57
поделиться

2 ответа

Проблема в том, что вы делаете больше, чем просто простой селектор для вашего живого выбора

из API.jquery.com «Методы обхода DOM не полностью поддерживаются для поиска элементов для отправки на .Live (). Скорее, метод .live () всегда должен быть вызван непосредственно после выбора"

5
ответ дан 14 December 2019 в 04:37
поделиться
            if (obj.hasClass('collapsed')) { 
            obj.removeClass('collapsed').addClass('SmartFieldSetCollapsible'); }

            $(this).removeClass('collapsed');

Сначала вы хотите удалить класс A A добавить еще один класс, если он имеет класс рухнул, а затем вы удалите класс рухнул. Я не знаю, влияет на работу системы, но стоит попробовать.

работает работает функция, если вы просто используете .Click (когда поле не обновляется)?

2
ответ дан 14 December 2019 в 04:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: