3

所以我有一个无序列的链接列表,我需要说“如果第一次点击这些链接中的任何一个,请执行此操作,否则执行此操作”,我并不是指列表中的任何单个链接,如果只是其中一个单击这些项目,即所有项目的第一次单击。

$('.idTabs li a').one("click", function() {
    do this;
});

这有效,但仅适用于列表中的每个单独链接。它将在单击 list-item-1 时起作用并且不会再次出现,如果我单击 list-item-2 它会执行一次并且不会再次出现。我需要的是单击 list-item-1 并让它不再出现在任何其他 list-item-# 中。

进一步了解背景:我有一个列表导航,当您单击一个项目时,它会展开隐藏的子导航,单击第一个项目后,子导航出现,并且在它出现后 - 单击任何其他父项打开它相应的子导航,如选项卡。

4

1 回答 1

4

你可以.data()用来存储一个布尔值,与无序列表相关联,指示它是否是第一次点击:

$('.idTabs li a').on("click", function() {
  var $idTabs = $(".idTabs");
  var clicked = $idTabs.data("clicked");
  if (!clicked) { // first click
    $idTabs.data("clicked", true);
    console.log('First click');
  } else {
    console.log('Not the first click');
  }
});​

演示

于 2012-09-05T00:39:16.303 回答