javascript - 如何减少 jQuery 代码中的冗余?

标签 javascript jquery abstraction redundancy

我的 JavaScript 文件的大小已经失控,因为我有数百个链接,每个链接都有自己的 jQuery 函数,尽管它们基本上都执行相同的任务。

这是一个简短的摘录:

$("#link1").click(function ()
{
  $(".myDiv").hide();
  $("#myDiv1").toggle();
});

$("#link2").click(function ()
{
  $(".myDiv").hide();
  $("#myDiv2").toggle();
});

$("#link3").click(function ()
{
  $(".myDiv").hide();
  $("#myDiv3").toggle();
});

是否有一种方法可以抽象出其中的一些逻辑,以便我只有一个函数而不是数百个做同样事情的函数?

最佳答案

您可以向所有执行相同操作的链接添加一个类,并在该类上使用 jQuery。

<a href='whatever' id='link_1' class='toggler'>text</a>
<a href='whatever' id='link_2' class='toggler'>text</a>

jQuery 代码将是:

$(".toggler").click( function(){
    // toggle the divs
    var number = $(this).attr("id").split('_')[1];
    $(".myDiv").hide();
    $("#myDiv"+ number).toggle();
});

关于javascript - 如何减少 jQuery 代码中的冗余?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1100026/

相关文章:

python - 如何抽象调用这个具体 Thread 类的方式?

android - 在 Android 中设计新的 BaseAdapter 模式

javascript - 无法为 <md-app-content> vue 设置样式

javascript - 如何使用多个日期时间列对 javascript 数组进行排序

javascript - 具有异步加载的 Angular bootstrap typeahead 落后一个字符

jquery - 使用 jQuery 将一个类附加到每个第三个克隆列表项

javascript - 让我的弹出窗口可以拖动到任何地方?

javascript - 从 <audio> HTML 中隐藏进度条

c# - 数据持久层需要多少层抽象?

javascript - Twitter bootstrap typeahead 无法添加到动态创建的元素