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

Bergische Webschmiede post at bergische-webschmiede.de
Wed Mar 12 07:33:59 CET 2014


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 
> 
> 



More information about the TYPO3-german mailing list