【问题标题】:.show() method not working sometimes in google chrome while its working perfectly in firefox.show() 方法有时在 google chrome 中无法正常工作,而在 Firefox 中却可以正常工作
【发布时间】:2015-01-06 09:54:23
【问题描述】:

我有以下数组,由类别和子类别组成。

        $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>

最初所有的子类别都是 display:none 除了 select one 。所有子类别都有类,这是它的主要类别。 现在,当我更改类别时,我会隐藏所有子类别,取 selected 的值 category 和 show() 子类别,其类是我从这样的类别中获得的值

     $('#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 中删除但这些子类别仍然没有显示在页面上。

【问题讨论】:

    标签: php jquery google-chrome firefox


    【解决方案1】:

    您无法显示和隐藏&lt;option&gt; 元素,并非所有浏览器都支持它,您必须实际删除它们并重新插入。

    Chrome 和 IE 在隐藏选项方面存在问题,奇怪的是它会间歇性地工作,因为它可能根本不应该工作。

    【讨论】:

    • 对,我曾经遇到过 chrome 和 firefox 的此类问题。
    • @adeneo 你能告诉我如何删除和重新插入选项吗?
    • @user3230879 - 这会更复杂,因为您必须将删除的那些保留在某个地方,以便稍后插入等等。
    • @user3230879 - 如果您希望有人为您解决问题,您应该发布 HTML,我无法在此处复制您的服务器端代码。
    • @adeneo 你能告诉我我应该怎么做吗。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 2011-11-09
    • 1970-01-01
    相关资源
    最近更新 更多