javascript - 如何压缩相似的重复jquery函数

标签 javascript jquery html

如果我的数学正确的话,我的 Jquery 文件比实际大小大 16 倍。

我正在构建一个选项卡式类别页面,如下所示..

标签1

  • 猫1
  • 猫2
  • 等等

标签2

  • 猫1
  • 猫2
  • 等等

所有内容一开始都是隐藏的,然后在单击类别标题中的按钮(也可以向上/向下切换箭头)时显示。

$("#tabName_contentLink_cat1").click(function(){

    $("#tabName_contentLink_cat1 > .arrow").toggleClass('greyArrow_down')  
                                           .toggleClass('blackArrow_up');
    $("#tabName_content_cat1").slideToggle("fast");

});

这段代码工作正常,但我已经重复了 16 次!

唯一不同的部分是“_cat1”末尾的数字。

如何转换这段代码,使其可以重复使用 16 次?

我是新手,所以请记住这一点。

<小时/>

在我心里;分配一些寻找的唯一标识符(适用的类别号),将其收集在 jQuery 变量 onClick 中,然后像前进的方式粘贴在每个 _cat'HERE' 接缝的末尾。但我不知道如何执行它。

谢谢

最佳答案

您可以向所有 cat 元素添加另一个类,然后将其用作选择器,或者您可以执行我所做的操作。请注意,我使代码更小、更高效。它通过使用 Function 来完成您想要的事情。

addClick(cat1);
addClick(cat2);
addClick(cat3);
addClick(cat4);

function addClick(x) {
$("#tabName_contentLink_"+x).click(function(){
    $(this).slideToggle("fast").children(".arrow")
           .toggleClass('greyArrow_down blackArrow_up');
});}

关于javascript - 如何压缩相似的重复jquery函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20458715/

相关文章:

javascript - 这个 IE array.push 错误有合理的理由吗?

javascript - extjs中的ajax请求总是执行成功

javascript - 日期格式在 Chrome 中给出的结果与在其他浏览器中不同吗?

javascript - 函数调用不起作用

javascript - 如何在 ul 中包装 li 标签组

javascript - 使用变量创建动态 json 元素

javascript - Codecademy - 我的代码返回 true,但它说我错过了其他东西?

javascript - 实现到具有视差效果的 3D 变换的平滑初始过渡

javascript - WebdriverIO waitForExist() 选择元素的选定选项

html - 更改 ngx-pagination CSS