用jquery确认只有1次函数

时间:2010-04-24 01:13:46

标签: jquery function confirm

我有这个功能可以随机播放图像列表,当我按下#shuffle按钮我想要触发一条消息,如果第二次确认我不想再问一次!

如何编码?

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

2 个答案:

答案 0 :(得分:4)

您可以使用变量,如下所示:

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 condition2if()的第一部分将为真,因此确认不会再次出现。

或者,您可以使用.data()存储变量:

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

答案 1 :(得分:0)

这是一种更易读的方式

$('#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();
    }
});