2016-09-30 2 views
-4

Когда число меньше -2, можно нажать кнопку prev. Я хочу, чтобы кнопка предыдущая не работала, если число меньше, чем -2 и так на следующий, если счетчик равен 1:Условное событие клика не работает

То, что я пытался, но не случайно:

HTML:

<a href="javascript:" id="prev">prev</a> 
    <a href="javascript:" id="next">next</a> 

JS:

$(function() { 
    var $prev = $('#prev'), 
     $next = $('#next'), 
     count = -1; 

    function prev() { 
     $prev.click(function(){ 
     count--; 
     console.log(count); 
     }); 
    } 

    function next() { 
     $next.click(function(){ 
     count++; 
     console.log(count); 
     }); 
    } 

    if (count > -2) { 
     prev(); 
    } else if (count < 1) { 
     next(); 
    } 

    }); 

Вот результат, когда я нажимаю кнопку предыдущая, и следующая кнопка не сработала. Расскажите, как сделать ее полезной.

enter image description here

+3

Что вы пытаетесь сделать? Пожалуйста, опишите вашу проблему. –

+0

Извлеките обработчики кликов из функций. Требуется также некоторое описание того, чего вы пытаетесь достичь. Просто сказать, что «это не работает» никому не помогает. –

+0

почему downvoted? вопрос правильный, что с тобой не так, потому что у тебя уже есть опыт в программировании твоей деятельности, очень гордый сейчас, не думая, что ты тоже пришел с этого уровня – Sherlock

ответ

2

Каждый раз, когда вы звоните next() или prev() вы придадите новое событие щелчка к кнопкам, вам не нужно, чтобы добавить эти функции просто прикрепить событие за один раз, проверьте пример ниже.

Надеюсь, это поможет.

$(function() { 
 
    var $prev = $('#prev'), 
 
     $next = $('#next'), 
 
     count = -1; 
 

 
    $prev.click(function(){ 
 
    if (count > -2) { 
 
     count--; 
 
     console.log(count); 
 
    } 
 
    }); 
 

 
    $next.click(function(){ 
 
    if (count < 1) { 
 
     count++; 
 
     console.log(count); 
 
    } 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="javascript:" id="prev">prev</a> 
 
<a href="javascript:" id="next">next</a>

+0

Посмотрите, дает ли кто-нибудь ответ, поэтому вопрос правильный. – Sherlock

+0

@Sherlock Знаем ли мы, что этот ответ правильный? На самом деле это то, что пытается достичь ОП или они действительно хотят привязать события только тогда, когда счетчик находится между -2 и 1?Мы на самом деле не знаем, и этот ответ в лучшем случае предположен, поскольку OP не включил ** ясную постановку проблемы ** – Pete

+1

@Sherlock Но я думаю, что OP не хочет, чтобы число было меньше -2 и более 1 Вопрос неясен, но это то, что предлагает его опубликованный код –