[TYPO3-german] OT: Menüproblem / jQuery

Peter Kühnlein peter at function2form.net
Wed Mar 12 14:03:55 CET 2014


Moin Stefan,

Danke für den Hinweis auf each(). Ich hab's eingebaut und... es tut 
wieder genau das gleiche. Okay... ich werd jetzt mal Prüfpunkte setzen 
und schauen, ob ich da was finde.

LG Peter

Am 12.03.2014 07:33, schrieb Stefan at lists.typo3.org:
> Hallo,
>
> wenn du dir dein Script ansiehst, siehst du doch, dass du das da auch
> reingeschrieben hast:
>
> "Suche in '#primenav' ALLE 'li'-Tags"
>
> Damit erzeugst du ein Objekt, in dem alle 'li'-Tags unterhalb von
> '#primenav' drin sind. Wenn du jetzt ein Event auf dieses Objekt
> loslässt, werden ALLe #li'-Tags angesprochen.
>
> Kurz: Versuch's mal mit nem each() und dein Tag ist gerettet:
>
> $("#primenav li").each( function() {
> 	$(this).mouseenter( function() {
> 		// tue irgendwas
> 	});
> });
>
> Gruß
> Stefan
>
>
> Am 11.03.2014 19:38, schrieb Peter Kühnlein:
>> Hi Nils,
>>
>> Hmmm... um ehrlich zu sein: ich hab' beim weiteren Testen bemerkt, dass
>> es noch komplizierter ist. Das Skript funktioniert, wie beschrieben,
>> wenn der betreffende Menüpunkt aktiv ist. Aber auch, wenn der nächste
>> oder überübernächste aktiv ist. Nur vom vorhergehenden oder übernächsten
>> Menüpunkt aus nicht.
>>
>> Ich hab auch mit Firebug mal die Seite angesehen: da ist nichts
>> überdeckt... ich werd zum Hirschen...
>>
>> LG Peter
>>
>> Am 11.03.2014 11:31, schrieb Nils Hodyas:
>>> Hi Peter,
>>>
>>> so ohne Anschauungsobjekt ist es natürlich schwierig. Eine wilde
>>> Vermutung ist: teste mal, ob für den Rechner der Mauszeiger überhaupt
>>> über dem Li ist, wenn er es für dein Auge ist - vielleicht ist das Li
>>> zu klein, es liegt was unsichtbares drüber ...
>>>
>>> LG, Nils
>>>
>>> Am 11.03.2014 11:08, schrieb Peter Kühnlein:
>>>> Hi Stefan,
>>>>
>>>> Danke für die schnelle und konstruktive Antwort. Ich hab's direkt
>>>> getestet - aber leider ändert sich am Verhalten überhaupt nichts.
>>>> Irre - so ein winziges Skript. Da müsste ein Fehler doch ins Auge
>>>> stechen.
>>>>
>>>> LG Peter
>>>>
>>>> Am 11.03.2014 10:24, schrieb Stefan at lists.typo3.org:
>>>>> Hi,
>>>>>
>>>>> diese Konstruktion
>>>>>
>>>>> $($(this).find("div"))
>>>>>
>>>>> finde ich verdächtig. Versuch mal einfach:
>>>>> $(this).find("div").fadeIn();
>>>>> $(this).find("div").fadeOut();
>>>>>
>>>>> Zur Identifizierung aktiver Menüpunkte kann man auch gut mit has()
>>>>> arbeiten.
>>>>>
>>>>> Hilft dir das weiter?
>>>>>
>>>>> Gruß
>>>>> Stefan Padberg
>>>>>
>>>>>
>>>>>
>>>>> Am 11.03.2014 09:32, schrieb Peter Kühnlein:
>>>>>> Moin Liste,
>>>>>>
>>>>>> ich hab ein kleines Offtopic-Problem, eigentlich eher jQuery:
>>>>>>
>>>>>> Ich erzeuge ein Dropdown-Menü mit dieser Struktur
>>>>>>
>>>>>> <ul id="primenav">
>>>>>>    <li class="menu_act"><a href="home/" onfocus="blurLink(this);"
>>>>>>> HOME</a></li>
>>>>>>    <li class="menu_no"><a href="leistungen/akquisition/"
>>>>>> onfocus="blurLink(this);"  >LEISTUNGEN</a>
>>>>>>     <div>
>>>>>>      <ul class="menu-level2">
>>>>>>       <li class="menu_no"><a href="leistungen/akquisition/"
>>>>>> onfocus="blurLink(this);" >Akquisition</a></li>
>>>>>>       <li class="menu_no"><a href="leistungen/direktmarketing/"
>>>>>> onfocus="blurLink(this);" >Direktmarketing</a></li>
>>>>>>       <li class="menu_no"><a
>>>>>> href="leistungen/firmenadressen-international/"
>>>>>> onfocus="blurLink(this);"  >Firmenadressen International</a></li>
>>>>>>       <li class="menu_no"><a
>>>>>> href="leistungen/firmenadressen-deutschland/"
>>>>>> onfocus="blurLink(this);"  >Firmenadressen Deutschland</a></li>
>>>>>>      </ul>
>>>>>>     </div>
>>>>>>    </li>
>>>>>> ...
>>>>>> </ul>
>>>>>>
>>>>>> Die div mit der Liste auf der 2. Ebene ist ausgeblendet übers CSS
>>>>>>
>>>>>> #primenav li div {
>>>>>>       position:relative;
>>>>>>       z-index:10;
>>>>>>       display:none;
>>>>>> ...
>>>>>> }
>>>>>>
>>>>>> Sie soll eingeblendet werden mit einem kleinen jQuery-Skript
>>>>>>
>>>>>> <script>
>>>>>> $(document).ready(function(){
>>>>>>     $("#primenav li").mouseenter(function(){
>>>>>>       $($(this).find("div")).fadeIn();
>>>>>>     });
>>>>>> });
>>>>>> $(document).ready(function(){
>>>>>>     $("#primenav li").mouseleave(function(){
>>>>>>       $($(this).find("div")).fadeOut();
>>>>>>     });
>>>>>> });
>>>>>> </script>
>>>>>>
>>>>>> Aber dieses Skript greift nur, wenn der Menüpunkt, in dem die div
>>>>>> steht,
>>>>>> aktiviert ist. Soll natürlich greifen, wann immer der Mauszeiger über
>>>>>> dem entsprechenden li der 1. Ebene landet. Verdammt! Was mach ich
>>>>>> falsch?
>>>>>>
>>>>>> Danke schon jetzt für die Hilfe,
>>>>>> Peter
>>

-- 

http://function2form.net
http://peter-kuehnlein.net

"After reading books and the like, it is best to burn them or throw them away."
(Hagakure)



More information about the TYPO3-german mailing list