![]() |
| | LinkBack | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Neuer Benutzer Registriert seit: 11.02.2008
Beiträge: 18
|
Hallo, ich möchte, wenn ich Ebenen ein- und ausblenden das der Status ob auf oder zu in einem Cookie gespeichert wird. Verfallen kann das (der ?) Cookie mit Ende der Sitzung. Oder wie wird so etwas gehandhabt? Code: <script type="text/javascript" src="scripts/jquery-1.3.1.js"></script>
<script type="text/javascript" src="scripts/jquery.cookie.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
var arrA = $("a[rel='toggle']").each(function(intIndex) {
// ID des zugehörigen Toggle-Elements ermitteln
var linkID = String($(this).attr('href')).substr(1, $(this).attr('href').length);
var status = {
'true': 'open',
'false': 'close'
};
// Element verstecken
if(linkID) {
$('#'+linkID).hide();
$.cookie('#'+linkID, 'close');
}
// Togglefunktion an Link binden
$(this).toggle(
function() {
$('#'+linkID).show(); // Einblenden
$.cookie('#'+linkID, 'open');
return false;
},
function() {
$('#'+linkID).hide(); // Ausblenden
$.cookie('#'+linkID, 'close');
return false;
}
);
});
});
</script>
HTML-Code: <ul class="iconlist"> <li class="arrow"><a href="#change" rel="toggle" title="weitere Tabelle einblenden">weitere Tabelle</a></li> </ul> <div style="clear: both;" id="change"><!-- begin: #change --> <table class="MyTable" border="0" cellpadding="0" cellspacing="0"> <thead> <tr> <th>Spalte 1</th> <th>Spalte 2</th> </tr> </thead> <tbody> <tr> <td>Zeile 1</td> <td>Zeile 2</td> </tr> <tr> <td>Zeile 1.1</td> <td>Zeile 2.2</td> </tr> </tbody> </table> </div><!-- end: #change --> |
| | |
| | Nach oben #2 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 964
|
Hi Gerrit. Scheint so, als würde nurnoch die Funktion fehlen, die Ebenen beim Start auch entsprechend der Cookie-Werte zu setzen. Vielleicht hilft Dir das: http://ifohdesigns.com/blog/tutorial...e-with-cookies Bastian
__________________ www.bastian-fenske.de |
| | |
| | Nach oben #3 |
| Neuer Benutzer Registriert seit: 11.02.2008
Beiträge: 18
|
Hi Basti, blöderweise macht er so garnicht. Wo muss das hin, das der Cookie nach Sitzungsende verfällt? Code: <script type="text/javascript">
$(document).ready(function()
{
var arrA = $("a[rel='toggle']").each(function(intIndex) {
// ID des zugehörigen Toggle-Elements ermitteln
var linkID = String($(this).attr('href')).substr(1, $(this).attr('href').length);
var status = {
'true': 'open',
'false': 'close'
};
// Element verstecken
if(linkID) {
$('#'+linkID).hide();
$.cookie('#'+linkID, 'close');
}
// Togglefunktion an Link binden
$(this).toggle(
function() {
$('#'+linkID).show(); // Einblenden
$.cookie('#'+linkID, 'open');
return false;
},
function() {
$('#'+linkID).hide(); // Ausblenden
$.cookie('#'+linkID, 'close');
return false;
}
);
var linkID = $.cookie(linkID);
if(status == 'close'){
$('#'+linkID).hide();
}
});
});
</script>
|
| | |
| | Nach oben #4 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 964
|
Verwendest Du nicht dieses Cookie-Plugin? http://plugins.jquery.com/project/Cookie Dort ist es doch dokumentiert: http://stilbuero.de/jquery/cookie/jquery.cookie.js Bastian
__________________ www.bastian-fenske.de |
| | |
| | Nach oben #6 |
| Neuer Benutzer Registriert seit: 11.02.2008
Beiträge: 18
|
Hallo, sorry, aber er legt dieses besch... Cookie nicht ab. Code: <script type="text/javascript">
$(document).ready(function()
{
var arrA = $("a[rel='toggle']").each(function(intIndex) {
// ID des zugehörigen Toggle-Elements ermitteln
var linkID = String($(this).attr('href')).substr(1, $(this).attr('href').length);
var status = {
'true': 'open',
'false': 'close'
};
// Element verstecken
if(linkID) {
$('#'+linkID).hide();
$.cookie(linkID, 'close');
}
// Togglefunktion an Link binden
$(this).toggle(
function() {
$('#'+linkID).show(); // Einblenden
$.cookie(linkID, 'open');
return false;
},
function() {
$('#'+linkID).hide(); // Ausblenden
$.cookie(linkID, 'close');
return false;
}
);
var CookieID = $.cookie(linkID, {path: '/'});
if(CookieID == 'close'){
$('#'+linkID).hide();
}
});
});
</script>
|
| | |
| | Nach oben #7 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 964
|
Hallo Gerrit. Probier das mal: Code: $(document).ready(function()
{
$("a[rel='toggle']").each(function(intIndex) {
var linkID = String($(this).attr('href')).substr(1, $(this).attr('href').length);
var panel = $('#' + linkID);
var cookieOptions = { expires: 0 };
var cookieValue = $.cookie('toggle.'+linkID);
if ('open' != cookieValue)
panel.hide();
$(this).toggle(
function() {
panel.show();
$.cookie('toggle.'+linkID, 'open', cookieOptions);
return false;
},
function() {
$('#'+linkID).hide();
$.cookie('toggle.'+linkID, null, cookieOptions);
return false;
}
);
});
});
__________________ www.bastian-fenske.de |
| | |
| | Nach oben #8 |
| Neuer Benutzer Registriert seit: 11.02.2008
Beiträge: 18
|
Hallo Basti, danke, ich konnte es aber erst heute testen Was mir aber auffällt ist, dass wenn ich eine Box öffne --> Seitenrefresh mache und dann die Box wieder schließen möchte, ich zweimal klicken muss Aber das was ich wollte, das es im Cookie speichert wird gemacht. Danke Gerrit, vielleicht kannst du ja noch mal die Sache mit dem Doppelklicken dir anschauen |
| | |
| | Nach oben #9 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 964
|
Hi Gerrit. Stimmt, der Status wird nicht gespeichert. Dann würde ich den Status in als Klasse abspeichern und anstatt toggle() click() verwenden, das dann je nach Status (sichtbar oder versteckt) eine von zwei Funktionen aufruft (zeige oder verstecke) : Code:
$(document).ready(function(){
function showPanel(id) {
$('#' + id)
.show()
.addClass('toggle_visible')
.removeClass('toggle_hidden');
$.cookie('toggle.' + id, 'open', { expires: 0 });
}
function hidePanel(id) {
$('#' + id)
.hide()
.addClass('toggle_hidden')
.removeClass('toggle_visible');
$.cookie('toggle.' + id, null);
}
$("a[rel='toggle']").each(function(intIndex) {
var id = String($(this).attr('href')).substr(1, $(this).attr('href').length);
var panel = $('#' + id);
var cookieValue = $.cookie('toggle.' + id);
if ('open' != cookieValue) {
hidePanel(id);
} else {
showPanel(id);
}
$(this).click(
function() {
if (panel.hasClass('toggle_visible')) {
hidePanel(id);
} else {
showPanel(id);
}
return false;
}
);
});
});
__________________ www.bastian-fenske.de |
| | |
| | Nach oben #10 |
| Neuer Benutzer Registriert seit: 11.02.2008
Beiträge: 18
|
Hi Basti, ich hatte mich damals garnicht bedankt bei dir. Das mit dem Cookie hatte geklappt, danke an dieser Stelle nochmal. Jetzt wollte ich das Script erweitern, das der Titel der Links noch sich ändern soll: Code: $(this).click(
function() {
if (panel.hasClass('toggle_visible')) {
hidePanel(id);
$(this).attr({'title': $(this).html($(this).attr('url')) + ' ausblenden'});
} else {
showPanel(id);
$(this).attr({'title': $(this).html($(this).attr('url')) + ' einblenden'});
}
return false;
}
);
Ist es möglich auch das Script auf fadeIn/fadeOut umzustellen?? beste Grüße Gerrit |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Wo ist mein cookie??? | Xean | PHP-Programmierung | 4 | 06.11.2006 14:04 |
| Eine Anmeldung -> Auf zwei Seiten Session starten und Cookie setzten | Jan | PHP-Programmierung | 12 | 27.09.2006 20:00 |
| Flash -> PHP -> MySQL | thrawn | Sonstige Programmiersprachen | 8 | 02.02.2006 18:10 |
| include -> html -> php/html | Julied64 | PHP-Programmierung | 2 | 03.09.2005 12:35 |