2015-01-06 3 views
0

У меня есть следующий массив, который состоит из категории и подкатегории..show() метод не работает иногда в google chrome, пока он отлично работает в firefox

 $event_category = array(
     'Entertainment' => array('Music/Concerts', 'Theatre and Arts', 'Dance and Yoga', 'Night life and Parties', 'Food and Dining', 'Festivals', 'Kids Events', 'Awards', 'Others'), 
     'Sports' => array('Adventure', 'Cricket', 'Cycling', 'Fitness', 'Marathon', 'Others'), 
     'Exhibhitions Fairs' => array('Technology', 'Education', 'Real Estate', 'Travel, Tourism, leisure', 'Trade Fairs', 'Others'), 
     'College Events' => array('College Fest', 'Alumni Meet', 'Summer Camps', 'Others'), 
     'Corporate' => array('Conferences', 'Seminars', 'Others'), 
     'Competitions' => array(), 
     'Awards' => array(), 
     'Not for profit' => array(), 
     'Other' => array(), 
    ); 

Теперь я заполняю вышеуказанный массив как категорию и подкатегорию.

<select style="color:#999;" name="category" id="category"> 
      <option value="0"> Select </option> 
     <?php foreach ($event_category as $key => $val) { ?> 
      <option value="<?php echo $key; ?>" style="color:#585858;"><?php echo $key; ?></option> 
     <?php } 
     ?> 
    </select> 


    <select style="color:#999;" name="subcategory" id="subcategory"> 
    <option style="color:#999;" class="axyzb" value="0"> Select </option> 
     <?php 
     foreach ($event_category as $key => $val) { 
     foreach ($val as $value) { ?> 
     <option style="display: none;color:#999;" class="<?php echo str_replace(' ', '_', $key); ?>" value="<?php echo $value ?>"><?php echo $value ?></option> 
     <?php 
     } 
     } 
    ?> 
    </select> 

Первоначально все подкатегории являются дисплеями: ни один, кроме одного. вся подкатегория имеет класс, который является его основной категорией. Теперь, когда я изменить категорию Я скрыть все подкатегории, взять значение выбранного категории и шоу() подкатегорий, чей класс значение, которое я получил от категории, как этот

 $('#category').change(function() { 
       $("#subcategory").children('option').hide(); 
       var cate = document.getElementById('category').value; 
       cate = cate.split(' ').join('_'); 
       if (cate != '') { 
        $('.' + cate).show(); 
        $('.axyzb').show(); 
       } 

      }) 

В основном я хочу, чтобы показать подкатегории в соответствии с выбранной категорией. Над кодом работает отлично для меня в firefox, но в chrome он не работает для двух категорий. Когда я проверяю консоль на начальном экране: ни один из них не удаляется из html, но все же эти подкатегории не отображаются на страница.

ответ

1

Вы не можете отображать и скрывать элементы <option>, они не поддерживаются во всех браузерах, вы должны их удалить и снова вставить.

Chrome и IE имеют проблемы со скрытыми опциями, и странно, что он будет работать с перерывами, поскольку он, вероятно, не должен работать вообще.

+0

Правильно у меня были проблемы с хромом и firefox один раз. – Jai

+0

@adeneo Не могли бы вы рассказать мне, как я могу удалить и повторно вставить параметры? – user3230879

+0

@ user3230879 - это было бы намного сложнее, так как вам нужно было бы сохранить те, которые вы удаляете где-то, чтобы их можно было вставить позже и т. Д. – adeneo

Смежные вопросы