Jquery Dynamic Radio кнопка показать скрыть - PullRequest
0 голосов
/ 27 августа 2010

По сути дела, я использую базу данных для создания переключателей и текстовых полей. В зависимости от того, какой переключатель выбран, отображается другое текстовое поле. Это легкая часть. Сложность в том, что все имена, классы и т. Д. Являются динамическими. Мне удалось заставить скрипт работать правильно с одним исключением. Это должно циклически пройти, и если что-то выбрано, оставьте это открытым. Прямо сейчас он настроен на закрытие всего, когда вы выбираете другую радиокнопку. Он оставляет открытым только выбранный элемент. Это хорошо, за исключением того, что закрывает флажок.

Как мне сделать так, чтобы текстовые поля отмеченных полей были видны?

  $(document).ready(function(){


 var vals = $('clickme').val();

        $(".clickme").click(function(){
     var rels = '.'+$(this).attr('rel');
    if ($('input[rel='+rels+']:checked').val() == vals ) {
   $('.hideable,rel').css("display","none");
   $(rels).slideDown("fast"); //Slide Down Effect
     } else {
     $(rels).slideUp("fast"); //Slide Up Effect
     }
     $('.clickme input').each(function(){
       if(this.checked == true){
     var relreset = '.'+$(this).attr('rel');
     $(relreset).slideDown('fast');
    }
     });
  });
  var rels = '.'+$('clickme').attr('rel');
        var showTop = $.cookie('showTop');
});

Простым решением было бы выполнить цикл и создать отдельную функцию для каждого поля, но я пытаюсь создать что-то динамическое. То, что мы можем использовать на многих страницах, используя тот же принцип. В строке $ ('. Clickme input') я попытался устранить проблему.

Буду признателен за помощь. Спасибо.

1 Ответ

0 голосов
/ 28 августа 2010

Для тех из вас, кто может использовать подобную функцию, вот что я использовал.Это так, потому что наличие скрытого поля, помеченного как скрытое в css, вызывает проблемы.Поэтому я назначаю скрытое при загрузке страницы, чтобы избежать этого.

$(document).ready(function(){
    $('.hideable').css('display','none');
    $('.clickme').each(function(){
                var relreset = '.'+$(this).attr('rel');
                if(this.checked == true){       
                    $(relreset).fadeIn('fast');
                }else if(this.selected == true){
                    $(relset).fadeIn('fast');
                }else{
                    $(relreset).fadeOut('fast');
                }
            });

    $(".clickme").click(function(){
        $('.clickme').each(function(){
            var relreset = '.'+$(this).attr('rel');
            if(this.checked == true){       
                $(relreset).fadeIn('fast');
            }else if(this.selected == true){
                $(relset).fadeIn('fast');
            }else{
                $(relreset).fadeOut('fast');
            }
        });
    });
});

Отсюда мы собираемся установить флажок, радио и т. Д. Class = "clickme".Это то, что заставляет функцию прослушивать щелчки.На радиостанции нам нужно убедиться, что у каждого есть класс.

Отсюда мы добавляем rel = "someuniquenameame" к флажку, радио и т. Д. Это будет передавать класс элемента, которыйсобираюсь спрятаться.Итак, мы сопоставим его с элементом через класс.

Так, например (с использованием coldfusion, следовательно, #)).

Передаствоздействовать на элементы с помощью класса rel_ #imum_qualifications_id #.Итак, наш элемент будет выглядеть примерно так:

Обратите внимание, что там также есть класс, скрываемый.Это скрывает элемент, если он не выбран в начале.В противном случае вам придется ждать щелчка, чтобы скрыть вещи.Это заменит любой стиль = "display: none".Мы должны сделать это так, иначе у вас возникнут проблемы с отображением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...