質問

画像のリストをシャッフルするこの関数があります。#shuffleボタンを押すと、メッセージをトリガーしたい場合は、もう一度尋ねたくない2回目が確認されます。

これをコーディングする方法は?

$('#shuffle').click(function(){
  if(confirm('This will shuffle all your bla bla bla')){
    $("#upimagesQueue li").shuffle();       
  }
});
役に立ちましたか?

解決

このような変数を使用できます。

var confirmed = false;
$('#shuffle').click(function(){
  if(confirmed || confirm('This will shuffle all your bla bla bla')){
    $("#upimagesQueue li").shuffle();  
    confirmed = 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();   
  }
});

他のヒント

これは、より読みやすい方法です

$('#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();
    }
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top