0

我编写了一个运行良好的函数,但是当我尝试在具有相同类的多个 html 块上重用它时,它会中断。我尝试使用.next()and.closest()方法但没有结果。我在哪里应用这些?<select>该功能是通过使用无序列表重新创建下拉列表。

重要的是,类和函数与由 CMS 生成的列表保持一致并且可以是一个页面多次,因此有一个解决方案让我更改代码并单独调用每个函数并不好..

演示

下拉菜单工作正常(功能在一个无序列表上工作正常)

下拉中断(重用函数和 html 代码时)

4

2 回答 2

3

您的脚本有许多需要更改的地方。这应该可行,尽我所能理解你想要做什么。

重点是这样的:

$(".cloned").click(function(){
    $('.options').toggle();
    e.preventDefault();                 
});

处理程序中的$('.options')选择器选择所有具有该类的元素options,而不管您在文档中单击的位置。这就是为什么每个下拉菜单都会在点击时激活。

您应该只为点击选择特定.options元素。有很多方法可以做到这一点,但这就是我所做的:

$(this).next('.options').toggle();
于 2013-01-25T08:39:18.220 回答
1

这可以更好..看看这个小提琴

使用toggleClass()

小提琴

于 2013-01-25T08:56:56.617 回答