如果首先单击任何列表项,请执行此操作,否则执行此操作

时间:2012-09-05 00:35:40

标签: jquery click

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

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

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

更好地理解的更多背景:我有一个列表导航,当您点击一个项目,点击第一个项目后,子导航出现,并在它出现后点击任何其他父项后,展开隐藏的子导航item打开它的相应子选项,如标签。

1 个答案:

答案 0 :(得分: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');
  }
});​

<强> DEMO