| Autor |
Nachricht |
snuwie
Threadersteller
Dabei seit: 06.07.2010
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 11.08.2010 12:46
Titel [jquery] accordion |
 |
|
ich benutze das accordion vom jquery ui. funktioniert auch alles super.
wenn man sich durch die überpunkte klickt, öffnen sich ja die content bereiche. jetzt soll ich es aber so machen, dass wenn eine überpunkt geklickt wurde, sodass sich der content bereich geöffnet hat, man ein zweites mal auf diesen überpunkt klickt und sich dann beispielsweise eine seite öffnet.
mein ansatz war jetzt so
| Code: |
$('.menu li a').click( function() {
if($(this).hasClass('ui-state-active')){
alert("tu was!");
}
});
|
ich hoffe ihr könnt mir helfen
ich sollte vielleicht noch erwähnen, dass das alert fenster jetzt immer aufpopt, wenn ich einen überpunkt klicke
Zuletzt bearbeitet von choise am Mi 11.08.2010 13:16, insgesamt 2-mal bearbeitet
|
|
| |
|
 |
choise
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 38
Geschlecht:
|
Verfasst Mi 11.08.2010 13:17
Titel
|
 |
|
|
kannst du uns ein onlinebeispiel liefern? dann geht das sicherlich schnell
|
|
| |
|
 |
|
Anzeige
|
|
 |
SimonDerDude
Dabei seit: 15.01.2010
Ort: error: undefined
Alter: 38
Geschlecht:
|
Verfasst Mi 11.08.2010 13:42
Titel
|
 |
|
Was du brauchst ist iwie sowas:
| Code: | function initMenus() {
// Titel wieder schließen
$('li a.open').click(
function () {
$('li ul:visible').slideToggle('slow');
});
// Zeige erstes Untermenü offen (deaktiviert)
$('ul.menu ul').hide();
$.each($('ul.menu'), function(){
$('#' + this.id + '.expandfirst ul:first').hide();
});
// Öffne anderes Untermenü und schliesse das akutelle
$('ul.menu li a').click(
function() {
var checkElement = $(this).next();
var parent = this.parentNode.parentNode.id;
if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
if($('#' + parent).hasClass('collapsible')) {
$('#' + parent + ' ul:visible').slideUp('slow');
}
}
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#' + parent + ' ul:visible').slideUp('slow');
checkElement.slideDown('slow');
}
}
);
}
$(document).ready(function() {initMenus();}); |
Bei einem klick auf <ul> öffnet sich dieses.
Bei einem klick auf ein anderes <ul> schliesst sich das eine und es öffnet sich das andere.
Vielleicht kannst du das mit wenigen Änderungen so hinkriegen.
|
|
| |
|
 |
snuwie
Threadersteller
Dabei seit: 06.07.2010
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 11.08.2010 13:47
Titel
|
 |
|
GELÖSCHT
ich hoffe das langt Also wenn ich auf "Überpunkt 2" klicke, öffnet sich das Untermenü. Klicke ich ein zweites mal auf "Überpunkt 2", soll sich eine Seite öffnen.
Durch meinen Versuch ist es aktuell so, dass bei jedem Klick das Alert Fenster öffnet, obwohl er das eigentlich nur soll, wenn der Überpunkt die Klasse "ui-state-active" hat. Diese hat er ja nur, wenn er geklickt wurde. Damit könnte ich also den zweiten Klick "abfangen". Oder gibts eine bessere Lösung?
Zuletzt bearbeitet von Eistee am Mo 11.10.2010 08:18, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 53
Geschlecht:
|
Verfasst Mi 11.08.2010 15:38
Titel
|
 |
|
scheinbar wird die klasse so schnell zugewiesen, dass sie breits vorhanden ist, wenn du die abfrage durchläufst.
benutz eine kleine speichervariable, die sich merkt, welcher hauptmenüpunkt (anhand der id) aktiv ist. wird dieser ein zweites mal geklickt öffne die seite.
ob jedoch deine besucher schnallen, dass sich die seite erst beim zweiten mal klicken öffnet, lass ich mal außen vor
Zuletzt bearbeitet von pixelpapst303 am Mi 11.08.2010 15:38, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
snuwie
Threadersteller
Dabei seit: 06.07.2010
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 11.08.2010 15:44
Titel
|
 |
|
| pixelpapst303 hat geschrieben: | ob jedoch deine besucher schnallen, dass sich die seite erst beim zweiten mal klicken öffnet, lass ich mal außen vor  |
ich bin da leider nur ausführende kraft ... konnte den entcheidungsträger davon nicht abbringen
wie meinst du das mit der speichervariable?
|
|
| |
|
 |
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 53
Geschlecht:
|
Verfasst Mi 11.08.2010 15:54
Titel
|
 |
|
verpass deinen "Unterpunkt"-Links eindeutige ids und dann sowas inne art:
| Code: |
$(document).ready(function(){
$('#accordion').accordion();
var SpeicherShizzle;
$('#accordion li > a').click( function() {
if (SpeicherShizzle == $(this).attr('id')) {
alert ('sinnfreies seitenöffnen');
} else {
alert ('einmal geklickt');
}
SpeicherShizzle = $(this).attr('id');
});
});
|
|
|
| |
|
 |
choise
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 38
Geschlecht:
|
Verfasst Mi 11.08.2010 16:03
Titel
|
 |
|
na hoffentlich dokumentierst du deinen code gut, wenn du deine variablen so benennst
|
|
| |
|
 |
| |
|
 |
| Ähnliche Themen |
[SOLVED] jQuery: Accordion und Div overflow style
Ist das mit Accordion möglich?
Brauche Unterstützung bei JS Accordion
Hilfe bei MOO.FX accordion menü?
Suche horizontales Accordion
Javascript Problem mit Dragdealer im Accordion
|
 |