.show() 方法有时在 google chrome 中不起作用,而它在 firefox 中运行良好
.show() method not working sometimes in google chrome while its working perfectly in 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>
最初所有子类别都是 display:none 除了 select 一个。所有子类别都有 class 这是它的主要类别。
现在,当我更改类别时,我隐藏了所有子类别,取 selected 的值
category 和 show() 子类别,其 class 是我从这样的类别中获得的值
$('#category').change(function () {
$("#subcategory").children('option').hide();
var cate = document.getElementById('category').value;
cate = cate.split(' ').join('_');
if (cate != '') {
$('.' + cate).show();
$('.axyzb').show();
}
})
基本上我想根据 selected 类别显示子类别..上面的代码在 firefox 中对我来说工作正常但在 chrome 它不适用于两个类别。当我检查控制台初始 display:none 已从 html 中删除,但这些子类别仍未显示在页面上。
您无法显示和隐藏 <option>
元素,并非所有浏览器都支持它,您必须实际删除它们并重新插入它们。
Chrome 和 IE 有隐藏选项的问题,奇怪的是它会间歇性地工作,因为它可能根本不应该工作。
我有以下数组,其中包含类别和子类别。
$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 一个。所有子类别都有 class 这是它的主要类别。 现在,当我更改类别时,我隐藏了所有子类别,取 selected 的值 category 和 show() 子类别,其 class 是我从这样的类别中获得的值
$('#category').change(function () {
$("#subcategory").children('option').hide();
var cate = document.getElementById('category').value;
cate = cate.split(' ').join('_');
if (cate != '') {
$('.' + cate).show();
$('.axyzb').show();
}
})
基本上我想根据 selected 类别显示子类别..上面的代码在 firefox 中对我来说工作正常但在 chrome 它不适用于两个类别。当我检查控制台初始 display:none 已从 html 中删除,但这些子类别仍未显示在页面上。
您无法显示和隐藏 <option>
元素,并非所有浏览器都支持它,您必须实际删除它们并重新插入它们。
Chrome 和 IE 有隐藏选项的问题,奇怪的是它会间歇性地工作,因为它可能根本不应该工作。