Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Разные действия при 1-м и 2-м клике (https://javascript.ru/forum/jquery/38949-raznye-dejjstviya-pri-1-m-i-2-m-klike.html)

k911a 09.06.2013 17:50

Разные действия при 1-м и 2-м клике
 
JQuery
Третий день ломаю мозг, как сделать, чтобы при первом клике на объекте происходило одно действие, а при втором другое.

Метод toggle не подходит, т.к. он не работает в поздних версиях jQuery таким образом, а просто скрывает и показывает объект.

vadim5june 09.06.2013 18:09

Вот так без jquery
<button onclick=f(this)>click me</button>
<script>
function f(t){if(t.i){t.i=0;f1()}else{t.i=1;f2()}};
function f1(){alert('one')};
function f2(){alert('two')};
</script>

danik.js 09.06.2013 18:38

<button id="button">Жми!</button>
<script>
    var button = document.getElementById('button');
    var actions = {
        1: function() {
           alert('Действие 1');
        },
        2: function() {
           alert('Действие 2');
        }
    };
    var counter = 0;
    button.onclick = function() {
        actions[counter = (counter % 2) + 1]();
    }
</script>

рони 09.06.2013 20:10

:write: :)
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<button id="button">Жми!</button>
<script>
    var a = {
    0: function () {
        alert('Действие 1')
    },
    1: function () {
        alert('Действие 2')
    }
}, b = -1;
document.getElementById("button").onclick = function () {
    a[++b % 2]()
};
</script>
</body>
</html>


Часовой пояс GMT +3, время: 22:36.