jQuery用于点击功能的多个目标ID

时间:2017-03-30 21:52:07

标签: jquery selector

这可能有点多余,但我想知道是否有办法通过缩短代码以避免重复来改进代码。

$('a[href*="#about"]').click(function() 

我想定位#about #products #process #gallery #contact

我想避免:

$('a[href*="#about"]', 'a[href*="#process"]', a[href*="#etc"]' ).click(function() 

2 个答案:

答案 0 :(得分:4)

给他们所有的课程并定位:

$(".the-class").click(function() {
    // ...
});

如果你不能这样做,那么你想要避免(但做得正确)的是你需要做的事情:

$("[href=#about], [href=#products], [href=#process], [href=#gallery], [href=#contact]").click(function() {
    // ...
});

答案 1 :(得分:1)

或者,您可以在页面上设置单击处理程序,并根据单击的元素进行委派。

var handledHrefs = ['#about', '#products', '#process', '#gallery', '#contact'];
$('body').on('click', 'a[href^=#]', function (e) {
  if (handledHrefs.includes(e.target.attr('href'))) {
    // ...
  }
});

这实际上比附加单个事件处理程序具有更好的性能,令人惊讶的是。