所以我有一个无序的链接列表,我需要说“如果第一次点击这些链接中的任何一个,请执行此操作”,我并不是指列表中的任何单个链接,如果点击其中一个项目,这是所有这些项目的第一次点击。
$('.idTabs li a').one("click", function() {
do this;
});
这样可行,但仅适用于列表中的每个链接。它将在单击list-item-1时起作用而不再出现,如果我单击list-item-2它将执行一次而不再出现。我需要的是点击list-item-1并让它不再出现在任何其他列表项中 - #。
更好地理解的更多背景:我有一个列表导航,当您点击一个项目,点击第一个项目后,子导航出现,并在它出现后点击任何其他父项后,展开隐藏的子导航item打开它的相应子选项,如标签。
答案 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 强>