javascript - 我怎样才能重用这个功能?

标签 javascript jquery function

我已经编写了一个工作正常的函数,但是当我尝试在具有相同类的多个 html block 上重用它时,它就崩溃了。我尝试使用 .next().closest()有方法但没有结果。我在哪里应用这些?功能是重新创建一个<select>下拉菜单,但使用无序列表。

重要的是,类和函数保持相同,因为列表是由 CMS 生成的,并且可以在一个页面上多次出现,因此采用更改代码并单独调用每个函数的解决方案并不好。

演示

Dropdown works fine (函数在一个无序列表上运行良好)

Dropdown breaks (当重用函数和html代码时)

最佳答案

您的脚本有很多需要更改的地方。 This should work ,尽我所能理解您想要做什么。

要点是:

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

处理程序内的 $('.options') 选择器会选择所有具有 options 类的元素,无论您在何处单击在文件中。这就是为什么每个下拉菜单都会在点击时激活。

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

$(this).next('.options').toggle();

关于javascript - 我怎样才能重用这个功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14518028/

相关文章:

javascript - jQuery - 从 $(this).val() 设置 data() 变量

c++ - 如何创建不同原型(prototype)的函数指针数组?

python - 如何部分定义函数参数? Python

c++ - 如何使用另一个类的重载函数运算符(operator())?

javascript - div问题的奇偶选择器

javascript - 提交后清除表单字段

javascript - 如何让覆盖层消失?

jquery - 处理 jQuery ajax 中未修改的 304 的正确方法

javascript - 在对象中取数组的多个值

javascript - 在下拉列表中定义变量失败