0

我正在做一个项目,我有多个使用 PHP 填充的下拉菜单。每个下拉列表都有一个 idstyleDrop和一个容器 id styleCont。现在由于某种原因,在第一个下拉列表中,这是唯一一个似乎用我的代码“注册”的:

//this file is used for the styling dropdowns
$(document).ready(function () {
    //close opened dropdown and open one selected:
    $("#styleDrop").click(function(){
        var selected = $(this);
        $("#styleCont").fadeOut();
        selected.closest("#styleCont").fadeIn();
    });

}); 

假设会发生什么:

用户将单击一个下拉菜单,如果任何其他下拉菜单打开,它将关闭,而用户刚刚选择的下拉菜单将打开。此外,如果他们在下拉列表之外单击,它将关闭。

问题是这不适用于任何其他下拉菜单,并且在它使用的下拉菜单中,它只会使其立即打开和关闭。

我不确定这是为什么。想法?想法?

4

2 回答 2

2

ID 应该是唯一的。

您的选择器正在查找第一个(通过调用 getElementById)并返回它。

改用一个类并适当地更改您的选择器以使用“.styleCont”

<select class="styleDrop" ... >

接着...

$(".styleDrop")
于 2013-07-18T00:49:14.730 回答
0

每个下拉列表都有一个 styleDrop 的 id

这就是为什么页面上每个元素的 id 必须是唯一的,因此您的函数只绑定到它在 DOM 中找到的第一个元素。改用一个类(即.styleDrop)。

于 2013-07-18T00:49:39.000 回答