2016-06-10 66 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,它不適合我,我做錯了什麼:/庫爾,請編輯我的小提琴,按鈕回來做該返回功能?我真的很感激。 –