jQueryで1時間の関数のみを確認します
質問
画像のリストをシャッフルするこの関数があります。#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();
}
});
所属していません StackOverflow