Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

[gelöst] jquery script an falscher Stelle?

Eingetragen von stixer2 (113)
am 31.08.2015 - 10:00 Uhr in
  • Themes & Theming
  • Drupal 7.x

Hi.

Auf einigen Seiten sollen bestimmte Wörter automatisch blau ausgegeben werden. Das habe ich mit einem jquery script gelöst, dass ich in einen Block geschrieben habe, und zwar folgendes:

<script type="text/javascript">
$(document).ready(function(){
   
$.fn.wrapInTag = function (opts) {
    // http://stackoverflow.com/a/1646618
    function getText(obj) {
        return obj.textContent ? obj.textContent : obj.innerText;
    }

    var tag = opts.tag || 'span class="blau"',
        words = opts.words || [],
        regex = RegExp(words.join('|'), 'gi'),
        replacement = '<' + tag + '>$&</' + tag + '>';

    $(this).contents().each(function () {
        if (this.nodeType === 3) //Node.TEXT_NODE
        {
            $(this).replaceWith(getText(this).replace(regex, replacement));
        }
        else if (!opts.ignoreChildNodes) {
            $(this).wrapInTag(opts);
        }
    });
};

$('p').wrapInTag({"words" : ["Asyl", "Asyl suchen", "Aufenthalts-Erlaubnis zum Zwecke der Erwerbs-Tätigkeit", "Aufenthalts-Erlaubnis", "Aufenthalts-Gesetz", "Ausländer-Behörde",  "Beschäftigungs-Erlaubnis",  "Deutsche Botschaft",  "Deutschen Botschaft",  "Deutsches Konsulat",  "Deutschen Konsulat",  "Dritt-Staaten-Angehörige",  "Europäischen Union",  "Einsatz-Stelle",  "Erklärung gemäß Aufenthalts-Gesetz § 55 Abs. 2",  "Grund-Sicherung", "Motivations-Schreiben mit Angaben zu beruflichen Perspektiven nach dem Freiwilligen-Dienst", "Motivations-Schreiben", "Nachweise zur Lebens-Unterhalts-Sicherung", "Paragraf 55, Absatz 2 des Aufenthalts-Gesetz", "§ 55 Abs. 2", "§55 Abs. 2", "Paragraf 55, Absatz 2", "Sozial-Leistungen", "Stufe A1", "Träger", "Vereinbarung über den Freiwilligen-Dienst", "Visum"]});

$('li').wrapInTag({"words" : ["Asyl", "Asyl suchen", "Aufenthalts-Erlaubnis zum Zwecke der Erwerbs-Tätigkeit", "Aufenthalts-Erlaubnis", "Aufenthalts-Gesetz", "Ausländer-Behörde",  "Beschäftigungs-Erlaubnis",  "Deutsche Botschaft",  "Deutschen Botschaft",  "Deutsches Konsulat",  "Deutschen Konsulat",  "Dritt-Staaten-Angehörige",  "Europäischen Union",  "Einsatz-Stelle",  "Erklärung gemäß Aufenthalts-Gesetz § 55 Abs. 2",  "Grund-Sicherung", "Motivations-Schreiben mit Angaben zu beruflichen Perspektiven nach dem Freiwilligen-Dienst", "Motivations-Schreiben", "Nachweise zur Lebens-Unterhalts-Sicherung", "Paragraf 55, Absatz 2 des Aufenthalts-Gesetz", "§ 55 Abs. 2", "§55 Abs. 2", "Paragraf 55, Absatz 2", "Sozial-Leistungen", "Stufe A1", "Träger", "Vereinbarung über den Freiwilligen-Dienst", "Visum"]});

});
</script>

Leider lädt das script nicht, bzw. nur dann, wenn ich <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> im template hinter <?php print $scripts; ?> schreibe. Dann klappt es. Allerdings finktionieren dann z.B. die Accordions nicht mehr.
Grundlegend wird aber jquery ja geladen, also vermute ich, nur an der falschen Stellen für das script.

Es ist offensichtlich, dass ich (noch) keine große Ahnung von jquery habe… wie kann ich ‘p‘ und ‘li‘ zusammenfassen? kann ich einfach $(‘p‘, ‘li‘) schreiben?

Danke und Grüße!

‹ Zen Thema: Änderungen sind nur aktiv, wenn ich eingeloggt bin [gelöst] jquery script an falscher Stelle? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du kannst nicht einfach die

Eingetragen von wla (9461)
am 31.08.2015 - 10:39 Uhr

Du kannst nicht einfach die $-Funktion voraussetzen. Die ist in dieser Form in Drupal 7 nicht sofort vorhanden. Sieh Dir im Zen-Theme das Beispiel-Script im js-Unterordner an, dann verstehst Du was ich meine.
jQuery arbeitet mit "normalen" CSS-Selektoren (ok, es gibt auch ein paar zusätzliche). Also wäre li nach p wie sonst auch $('p li').

  • Anmelden oder Registrieren um Kommentare zu schreiben

alternativ kannst du auch

Eingetragen von caw (2762)
am 31.08.2015 - 11:23 Uhr

alternativ kannst du auch einfach das modul lexikon oder g2 nutzen. damit hast du gleichzeitig eine Verlinkung zu erklärungen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat:Du kannst nicht

Eingetragen von stixer2 (113)
am 31.08.2015 - 11:48 Uhr
Zitat:

Du kannst nicht einfach die $-Funktion voraussetzen.

Das verstehe ich nicht. Das script funktioniert ja, offenbar nur, wenn jquery an der richtigen Stelle eingebunden wird…
So funktioniert es nicht:

<script src="//code.jquery.com/jquery-1.7.2.min.js"></script>
<script>window.jQuery || document.write("<script src='/sites/all/modules/jquery_update/replace/jquery/1.7/jquery.min.js'>\x3C/script>")</script>
<script [mehr scripte folgen hier]

so funktioniert es:

<script src="//code.jquery.com/jquery-1.7.2.min.js"></script>
<script>window.jQuery || document.write("<script src='/sites/all/modules/jquery_update/replace/jquery/1.7/jquery.min.js'>\x3C/script>")</script>
<script src […]</script>
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script src="//use.typekit.net/

Jetzt steht das 2x da (klar), und offenbar läuft es, weil er jquery nach all den anderen scripten lädt. Oder ist das Unsinn, den ich mir da denke?

  • Anmelden oder Registrieren um Kommentare zu schreiben

G2 kannte ich noch nicht, das

Eingetragen von stixer2 (113)
am 31.08.2015 - 11:52 Uhr

G2 kannte ich noch nicht, das scheint ja für D7 zu funktionieren… so was hatte ich eiegtnlich gesucht, aber nichts vernünftiges für D7 gefunden. Ich teste das mal. Lexikon war mir zu fett, es geht ja nur um 10, 15 Wörter…

Ansonsten würde mich das schon noch interessieren, wie ich jquery ordentlich in Drupal einbinden kann. Alle Foren und Blogs etc. gehen irgendwie davon aus, dass man weiß, wie das geht… ich weiß es nicht, will es aber lernen. Es scheint, als sei das simplere an js das schwierigste im Moment für mich…

Danke und Grüße!

  • Anmelden oder Registrieren um Kommentare zu schreiben

jquery brauchst du ja nicht

Eingetragen von caw (2762)
am 31.08.2015 - 13:19 Uhr

jquery brauchst du ja nicht einzubinden. das ist schon eingebunden. nur die funktionen mußt du dann einbinden https://www.drupal.org/node/171213
/ We define a function that takes one parameter named $.
(function ($) {
// Use jQuery with the shortcut:
console.log($.browser);
// Here we immediately call the function with jQuery as the parameter.
}(jQuery));

The .ready() function also has the ability to alias the jQuery object:
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});

  • Anmelden oder Registrieren um Kommentare zu schreiben

Aaah, perfekt. So klappt

Eingetragen von stixer2 (113)
am 31.08.2015 - 14:32 Uhr

Aaah, perfekt. So klappt es.

Merci!

  • 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 3 Tagen 21 Stunden
  • Hey danke
    vor 4 Tagen 16 Stunden
  • Update: jetzt gibt's ein
    vor 5 Tagen 10 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 2 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 2 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 5 Stunden
  • In der entsprechenden View
    vor 2 Wochen 5 Stunden
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 5 Stunden
  • gelöst
    vor 4 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

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