подтвердить только 1 раз функцию с JQuery - PullRequest
0 голосов
/ 24 апреля 2010

У меня есть эта функция, которая будет перетасовывать список изображений, когда я нажимаю на кнопку #shuffle, я хочу вызвать сообщение, если подтвердится во второй раз, я не хочу спрашивать снова!

как закодировать это?

$('#shuffle').click(function(){
  if(confirm('This will shuffle all your bla bla bla')){
    $("#upimagesQueue li").shuffle();       
  }
});

Ответы [ 2 ]

4 голосов
/ 24 апреля 2010

Вы можете использовать переменную, например так:

var confirmed = false;
$('#shuffle').click(function(){
  if(confirmed || confirm('This will shuffle all your bla bla bla')){
    $("#upimagesQueue li").shuffle();  
    confirmed = true;     
  }
});

Это начинается с того, что подтверждение не подтверждается, но в первый раз устанавливается значение true. Это означает, что первая часть condition1 OR condition2 в вашем if() будет истинной, поэтому подтверждение не появится снова.

В качестве альтернативы вы можете использовать .data(), чтобы сохранить переменную для этого:

$('#shuffle').click(function(){
  if($(this).data('confirmed') || confirm('This will shuffle all your bla bla bla')){
    $(this).data('confirmed', true);   
    $("#upimagesQueue li").shuffle();   
  }
});
0 голосов
/ 24 апреля 2010

Это более удобный способ чтения

$('#shuffle').bind('click', function(event){
    if(confirm('are you sure?')){
        $(this).unbind(event);
        $('#shuffle').bind('click', function(){
            $("#upimagesQueue li").shuffle();
        });
        $("#upimagesQueue li").shuffle();
    }
});

См .: http://api.jquery.com/one/

Также может быть записано как:

$('#shuffle').bind('click', function(event){
    if(confirm('are you sure?')){
        $(this).unbind(event).click(function(){
            $("#upimagesQueue li").shuffle();
        })
        $("#upimagesQueue li").shuffle();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...