2016-06-30 6 views
-1

jQueryとjQuery Cookieを使用してスライディングパネルで作業しています。パネルは、それはそれを開くために2回のクリックを取っ閉じた ダブルクリックしてサイドパネルを閉じる

$(function() { 
if ($.cookie('myCookieName')) { 
    $('#slideOut').css('right', '-345px'); 
    $(".slideClose").addClass('hideBtn'); 
    $(".slideOpen").removeClass('hideBtn'); 
} 
}); 

$('#slideClick').click(function() { 
var it = $(this).data('it') || 1; 
switch (it) { 

    case 2: 
     $(this).parent().animate({ 
      right: '-345px' 
     }, { 
      queue: false, 
      duration: 500 
     }); 
     $(".slideClose").addClass('hideBtn'); 
     $(".slideOpen").removeClass('hideBtn'); 
     break; 

    case 1: 
     $(this).parent().animate({ 
      right: '-0px' 
     }, { 
      queue: false, 
      duration: 500 
     }); 
     $(".slideOpen").addClass('hideBtn'); 
     $(".slideClose").removeClass('hideBtn'); 
     break; 

} 
it++; 
if (it > 2) it = 1; 
$(this).data('it', it); 
//$.cookie('myCookieName', '1') 
var date = new Date(); 
var minutes = 1; 
date.setTime(date.getTime() + (minutes * 60 * 1000)); 
$.cookie("myCookieName", "foo", { expires: date }); 
}); 

は、誰かがパネルを閉じるには、しかし、今では2回のクリックをとり働いていた「ケース1」と「ケース2」の順序を変更することが示唆され、任意の助けが賞賛されるだろう。

ここにはfiddleがあります。

おかげ

答えて

1

あなたの問題はあなたの場合です。 2回クリックする必要がある理由は、最初のクリックがサイドバーをスライドさせることであるが、既に外に出ているからです。

変更を行います。var it = $(this).data('it') || 1;

var it = $(this).data('it') || 2;

が、その後良いことがあります。

クッキーによるダブルクリックの問題を回避したい場合は、そのケースをクッキー機能に追加して、データを更新するようにしてください。

$('#slideClick').data('it', 1); 
+0

私の前に素敵な1秒:) –

+0

ありがとうございますが、今は2つのクリックを開くには、笑を得ることはできませんhttps://jsfiddle.net/kellyhawker/u8ccv03s/8/ – webmonkey237

+0

私はおそらくする必要があります具体的には、ページを更新してクッキーを閉じたままにしておくと、クリックする必要があります。 – webmonkey237

0

利用.dblclick()の代わり.click()。詳細はこちら:https://api.jquery.com/dblclick/と変更されたフィドル:https://jsfiddle.net/u8ccv03s/4/

+0

多分私のタイトルは誤解を招くようだった、私はあなたがそれを最初に閉じるためにダブルクリックする必要があり、現時点では、パネルを開くにはダブルクリックする必要はありません申し訳ありませんが、私はシングルクリックを必要とする、ためのおかげでとにかく答え: – webmonkey237

関連する問題