2016-06-10 75 views
3

我想,这很容易,但我无法弄清楚。JS:撤消最后一次OnClick evnet

我有一系列的OnClick buttons(就像一棵选择树)。

有什么简单的方法,我怎么可以撤消最后一次点击?我希望这个函数只能固定到一个按钮(在html中)。我知道,我可以用一系列的按钮来做到这一点,在JS中,我可以将它们作为OnClick,它将具有相反的功能,比我在前面的步骤中做得更好。

我希望我说得很对。

我还创建了一个小提琴https://jsfiddle.net/sz57cyyf/5/

当你点击一个按钮,然后会显示按钮AA和AB。我想退后一步,所以我可以点击按钮BACK。我想要的是一个链接到按钮BACK的功能,它会自动执行相反的功能。当你点击“返回”时,如果你在浏览器中有按钮ABA,BAA等,就像这样。

这是我网站的用户。他们会点击按钮,他们会得到他们想要的东西。所以,你点击举例如下:A - > AB - > ABA按钮(你总是有2个选择)。这对我有用。但我想要的是,当你不小心点击按钮AB(4例),但你想点击按钮AA时,我想返回一步。所以你可以通过按“.back”从AAA/AAB按钮到AA/AB按钮,然​​后按A/B按钮。

回答

1

可能是这样的吗?

$(".back").click(function() { 
    if ($(".c").is(":visible")) { 
     $(".c").css("display", "none"); 
     $(".b").css("display", "block"); 
    } else if ($(".b").is(":visible")) { 
     $(".b").css("display", "none"); 
     $(".a").css("display", "block"); 
    } 
}); 
+0

问题与此是,我有一个的八方通2个按钮 “树”。所以“按钮A” - >“按钮AB” - >“按钮ABA”等。因此每个按钮都有2个按钮供您选择。在这种情况下,这是相当大的代码。所以我在寻找类似“重做以前的onclick”功能的东西。 –

1

您可以使用jQuery data()方法来存储HTML data-*属性按钮值。

$(".button").click(function(){ 
 
    var nextIndex = parseInt($(this).data("button")) + 1; 
 
    $(this).data("button", nextIndex).text("Button-" + nextIndex); 
 
}); 
 

 
$(".back").click(function(){ 
 
    var prevIndex = parseInt($(".button").data("button")) - 1; 
 
    if (prevIndex > 0) 
 
     $(".button").data("button", prevIndex).text("Button-" + prevIndex); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="button" data-button="1">Button-1</button> 
 
<button class="back">Back</button>

+0

这就是我要找的!似乎完美的工作,但我可能有点愚蠢。 https://jsfiddle.net/sz57cyyf/3/你不知道,为什么它不能在我的例子中工作? (以及我在PC上的代码) –

+0

@HonzisNovák因为你没有添加'data-button'属性,并且你使用了'a b c'而不是'1 2 3'。 – Mohammad

+0

https://jsfiddle.net/sz57cyyf/5/我把我的项目移动到JSF,它不适合我,我做错了什么:/库尔,请编辑我的小提琴,按钮回来做该返回功能?我真的很感激。 –