Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

javscript auf Menüpunkt legen, die Zweite

Eingetragen von stone_d (178)
am 12.08.2009 - 07:24 Uhr in
  • Allgemeines zu Drupal
  • Drupal 6.x

Hi ihrs,

nachdem bei meinem letzten Post die Frage "falsch gelesen" wurde, hier der zweite Anlauf:

Ich versuche gerade "javascript: toggleDiv('first_layer',1)" auf einen Menüpunkt zu legen - der frisst das aber nich, sondern will immer einen "gültigen" Link (http:// ..., oder Drupal-Link)

Ich will damit einen Layer aufpoppen lassen, der einen view-beinhaltet. Eigentlich will ich das auch eher als rollover - Aber da muss ich vermutilch die menu-render-Funktion umschreiben. Ich glaub das is mir zu heavy, außer jemand kann mir kurz sagen wie ich nen onmouseover bzw. nen onmouseout in die Menü-Theme-Funktion reinrendern kann ...

Ansonsten: wie kann ich die javascript-Funktion ausführen lassen?

Danke im Voraus
stone

‹ Projekt für mehrere Länder (de, ch, at), wie strukturieren ohne duplicate Content? Installation springt immer wieder zum Anfang ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Sowas macht man schon ewig

Eingetragen von Alexander Langer (3416)
am 12.08.2009 - 07:46 Uhr

Sowas macht man schon ewig nicht mehr so. Inline-JS ist zu vermeiden, wo es nur geht - und es geht eigentlich immer. Stattdessen nötigenfalls das Menu so themen, dass jeder Menüpunkt eine eigene Klasse hat, dann kann man ihn bequem aus JS (bei Drupal ist jQuery die Waffe der Wahl) direkt ansprechen.

--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich habe für jeden

Eingetragen von stone_d (178)
am 12.08.2009 - 08:29 Uhr

ich habe für jeden Menüpunkt eine eigene id, über die ich jeden Menüpunkt ansprechen könnte. Nun habe ich ein kleines Verständnisproblem: Ich will ja zur Laufzeit testen, ob ein "hover" stattfindet. Das heißt ein statisches Script das mit onLoad im Body geladen wird und testet ob die Maus über dem Menü ist, hilft mir da nich weiter. Muss ich nich die Testfunktion aufrufen, wenn die Maus über dem Menüpunkt ist? Und ist das nich schon wieder ein Javascript AUF nem Menübutton (onmouseover)?

Vermutlich steh ich grad aufm Schlauch - aber vielleicht hilft du mir das Wasser zum fließen zu bringen, wäre klasse. ;)

Dank im Voraus und Grüße
F.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nein, weil sich die halbwegs

Eingetragen von Alexander Langer (3416)
am 12.08.2009 - 09:10 Uhr

Nein, weil sich die halbwegs modernen Javascripts in den DOM-Tree einhängen, den der Browser aus dem HTML-Dokument erzeugt und dort gewissermaßen Event-Listener registrieren.

Vllt. fängste mal gaaanz langsam an dich mit jQuery zu befassen. Such mal nach "jquery tutorial" in einer SuMa deiner Wahl.

--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich hatte da mal ein ganz

Eingetragen von stebeg (463)
am 12.08.2009 - 13:43 Uhr

Ich hatte da mal ein ganz ähnliches Problem. Ich wollte damals, dass beim erstellen eines Users ein Textfeld "erscheint", wenn man eine ganz bestimmte Rolle auswählt. Das sah dann ungefähr so aus:

window.onload = function()
{
if(window.addEventListener)
  {
    document.getElementById("edit-roles-4").addEventListener('change', show_field, false);
    //für Firefox, Opera usw.
  } else
    {
      document.getElementById("edit-roles-4").attachEvent('onclick', show_field);
      //für Internet Explorer
      //onchange funktioniert im IE anders als in den anderen Browsern
      //das Event wird erst aktiv nach dem der Fokus von dem Element genommen wird
      //deshalb die Verwendung von onclick
    }
  if (!document.getElementById("edit-roles-4").checked)
  {
    document.getElementById("edit-profile-kdnr-wrapper").style.display = 'none';
    document.getElementById("edit-profile-kdnr").value = '';
  }
}

function show_field()
{
  if (!document.getElementById("edit-roles-4").checked)
  {
    document.getElementById("edit-profile-kdnr-wrapper").style.display = 'none';
    document.getElementById("edit-profile-kdnr").value = '';
  }
  else
  {
    document.getElementById("edit-profile-kdnr-wrapper").style.display = 'inline';
  }
}

Eingebunden hab ich die JavaScript-Datei dann mit

<?php
drupal_add_js
("[Pfad zur Datei]/datei-name.js"); 
?>

innerhalb meines Moduls. Eventuell hilft dir das ja weiter.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sei doch nicht so grausam zu

Eingetragen von Alexander Langer (3416)
am 12.08.2009 - 13:48 Uhr

Sei doch nicht so grausam zu ihm, so lange er noch jung und unerfahren ist und damit die Möglichkeit hat, gleich mit jQuery einzusteigen, anstatt mit so handgeklöppeltem Zeug rumzuhantieren... ;-)

--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

js

Eingetragen von stBorchert (6003)
am 12.08.2009 - 13:52 Uhr

Und das lässt sich mit jQuery so schreiben (ungetestet):

$(function () {
  $('#edit-roles-4').click(function () {
    if ($(this).attr('checked') == 'checked')) {
      $('#edit-profile-kdnr-wrapper').show();
    }
    else {
      $('#edit-profile-kdnr-wrapper').hide();
      $('#edit-profile-kdnr').value('');
    }
  });
});

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat:Und das lässt sich

Eingetragen von stebeg (463)
am 12.08.2009 - 14:15 Uhr
Zitat:

Und das lässt sich mit jQuery so schreiben (ungetestet):

$(function () {
  $('#edit-roles-4').click(function () {
   if ($(this).attr('checked') == 'checked')) {
       $('#edit-profile-kdnr-wrapper').show();
    }
   else {
     $('#edit-profile-kdnr-wrapper').hide();
     $('#edit-profile-kdnr').value('');
    }
   });
});

hth,

verdammt .... das is so viel hübscher als meins T_T

aber immerhin sieht man jetzt mal beide Varianten im direkten Vergleich. Jetzt darf sich stone_d eine aussuchen :-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

js #2

Eingetragen von stBorchert (6003)
am 12.08.2009 - 14:54 Uhr

:-)
Und es geht vermutlich sogar noch kürzer:

$(function () {
  $('#edit-roles-4:checked').click(function () {
    $('#edit-profile-kdnr-wrapper').show();
  });
  $('#edit-roles-4').not(':checked').click(function () {
    $('#edit-profile-kdnr-wrapper').hide();
    $('#edit-profile-kdnr').value('');
  });
});

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

ähm - danke ... hatte

Eingetragen von stone_d (178)
am 21.08.2009 - 14:45 Uhr
Zitat:

Sei doch nicht so grausam zu ihm, so lange er noch jung und unerfahren ist und damit die Möglichkeit hat, gleich mit jQuery einzusteigen, anstatt mit so handgeklöppeltem Zeug rumzuhantieren... ;-)

... schön überhebliche Ausdrucksweise. Vermutlich darf man das ab 2000 Beiträgen :D

Apropos: hatte jQuery recht schnell kapiert und bereits gelöst :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 4 Tagen
  • Hey danke
    vor 1 Woche 5 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 1 Tag
  • In der entsprechenden View
    vor 3 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 1 Tag
  • gelöst
    vor 5 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 16 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association