一系列下拉菜单,由jQuery提供支持,隐藏和显示,但不在Chrome中

A series of dropdown menus, powered by jQuery, hiding and showing, but not in Chrome

本文关键字:显示 Chrome 支持 下拉菜单 jQuery 一系列 隐藏      更新时间:2023-09-26

我是jquery和Web开发的n00b,我正在尝试创建一系列下拉菜单,当用户选择一个选项时,这些菜单将出现下一个dropdwon菜单,最后出现一个表格。

这是 HTML:

<div class="dropdownMenus">
                            <form id="menu1">
                                <h2>Choose your number</h2>
                                <select>
                                    <option class="descriptive" value="descriptive">Please choose your area</option>
                                    <option class="menuoption1" value="01493">01493 - Great Yarmouth</option>
                                    <option class="menuoption1" value="01603">01603 - Norwich</option>
                                    <option class="menuoption1" value="01393">01393 - Kings Lynn</option>
                                    <option class="menuoption1" value="01763">01763 - Lowestoft</option>
                                </select>
                            </form> 
                        </div>
                        <div class="dropdownMenus">
                            <form id="menu2">
                                <h2>Number Type</h2>
                                <select>
                                    <option class="descriptive" value="descriptive">Please choose your number</option>
                                    <option class="menuoption2" value="gold">Gold</option>
                                    <option class="menuoption2" value="silver">Silver</option>
                                    <option class="menuoption2" value="bronze">Bronze</option>
                                </select>
                            </form> 
                        </div>
                        <div class="dropdownMenus">
                            <form id="menu3">
                                <h2>Order</h2>
                                    <form>
                                        <input id="menuoption3" type="checkbox" value="sequential"> Sequential<br>
                                        <input id="menuoption4" type="checkbox" value="random"> Random<br>
                                        <input id="menuoption5" type="checkbox" value="voice"> Voice<br>
                                        <input id="menuoption6" type="checkbox" value="email"> Email<br>
                                    </form>
                            </form> 
                        </div>
                        <table id="resultsTable">
                            <thead> 
                                <tr>
                                    <th>Area</th>
                                    <th>Number Type</th>
                                    <th>Select</th>
                                    <th>Voice</th>
                                    <th>Mail</th>
                                </tr>
                            </thead>
                            <tbody> 
                                <tr>
                                    <td>Placeholder Data</td>
                                    <td>Placeholder Data</td>
                                    <td>
                                        <input type="checkbox" id="select" />
                                    </td>
                                    <td>
                                        <input type="checkbox" id="voice" />
                                    </td>
                                    <td>
                                        <input type="checkbox" id="mail" />
                                    </td>
                                </tr>
                            </tbody>
                        </table> 

这是我的jQuery:

$(document).ready(function(){
var $packages = $("#menu2");
var $orders = $("#menu3");
var $resultsTable = $("#resultsTable");


$packages.hide();
$orders.hide();
$resultsTable.hide();
$(".menuoption1").click(function(){
    $packages.show();
});
$(".menuoption2").click(function(){
    $orders.show();
});
$("#menuoption3, #menuoption4, #menuoption5").click(function(){
    $resultsTable.show();
});
});

这是我到目前为止所做工作的链接:https://jsfiddle.net/monkeyroboninja/9f9sotfv/

如果您查看Firefox或IE中的链接,它可以正常工作,但是通过Chrome查看它并不能完全工作。元素的初始隐藏有效,但在触发 click() 事件时显示则无效。任何帮助将不胜感激:-)

而不是

$(".menuoption1").click(function(){...

尝试

$("#menu1").change(function(){...

这应该适用于所有浏览器,并在下拉列表的值更改时触发。

.click不起作用的原因(感谢@Archer):

这是因为选项元素没有单击事件。

选择元素上的更改事件处理程序也可以工作。