ねえ、 私のスクリプトで何かが間違っています。私はdiv #searchboxとdiv #searchboxtriggerを持っています。jquery:バグのクッキースクリプト?必ずしも働くとは限りません
かなり類似しています:#searchboxはdisplay:noneで非表示になっています。 #searchboxtriggerがクリックされた場合、私は#searchboxをslideDownしています。私はCookieを保存しています。 #searchboxtriggerを再度クリックすると、#searchboxが再びslidingUpされ、Cookieがnullに設定されます。
私はjquery cookieプラグインを使用しています。
onload Cookieが設定されているかどうかを確認するには、ページが読み込まれたときに#searchboxが表示されている必要があります。 #searchbox slidesUpをもう一度実行し、Cookieがnullに設定されている場合、私はそれを表示したくありません。
のonload:onclickの
if($.cookie('search_visible') == 'true'){
$('#searchbox').show();
console.debug('is visible');
}else{
$('#searchbox').hide();
console.debug('is hidden');
}
:
$('#searchboxtrigger').click(function() {
if($.cookie('search_visible') == 'true') {
$('#searchbox').slideUp('fast');
$.cookie('search_visible', null);
console.debug('is hidden');
} else {
$('#searchbox').slideDown('fast');
$.cookie('search_visible', 'true');
console.debug('is visible');
}
});
あなたたちは奇妙なものを見ることができますか?時々#searchboxtriggerが反応せず、リロードするまでコンソールが12回何度も隠されてしまいます。 私は考えるのを忘れていますか?
は、私にはよさそうです。あなたがonloadと言うときは、確実にonloadイベントかjqueryの準備ができていますか? – Andy
私のsearchboxは私のヘッダーにあり、私のヘッダーは、ページがロードされたときに非表示に設定されているので、ヘッダが表示されたときに上記の最初のコードセクションを呼び出しています。クッキーが動作することが時々あるように見えますが、時にはそうではありません。私はそれが確実に動作するようにしたい。クリックしてページをリロードすると#searchboxが常に表示されます。そうでない場合は、#searchboxをリロード時に非表示にする必要があります。何かが間違っているはずです。 – matt