Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Checkbox per jquery über SVG triggern und dem path eine Klasse geben

Eingetragen von stixer2 (113)
am 11.08.2015 - 17:18 Uhr in
  • Views
  • Drupal 7.x

Hi.

Ich habe in einer View eine Liste mit verschiedenen nodes, die Bundesländern zugeordnet sind. Dazu habe ich eine Deutschlandkarte per SVG-code, die als views-attachment angehängt ist. Filtern kann ich die nodes nach Bundesland per "global filter"-Modul (welches mir die Filter-values als body-class ausgibt) über Checkboxen. Somit kann ich die Bundesländer je nach Filter per CSS "highlighten". Allerdings kann ich auf diese Weise nicht in die Karte klicken… daher meine (blöde?) Frage:

Gibt es einen Weg, wie ich über die Karte auch die Checkboxen anprechen kann? Vermutlich gibt es auch ein bessere Lösung, für einen Tipp dafür wäre ich ebenfalls dankbar.

Besten Dank und Grüße!
Alex

‹ [gelöst]Date-Feld in Views filtern Checkbox per jquery über SVG triggern und dem path eine Klasse geben ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, Du kannst für das SVG

Eingetragen von Hyp1 (1463)
am 12.08.2015 - 10:24 Uhr

Hi,

Du kannst für das SVG Image Maps machen und diesen Maps Links zuordnen.
http://demosthenes.info/blog/760/Create-A-Responsive-Imagemap-With-SVG

Es gibt Tools mit welchen Du solche Image Maps sehr einfach erstellen kannst.
http://www.maschek.hu/imagemap/imgmap

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi… Die image-maps sind

Eingetragen von stixer2 (113)
am 12.08.2015 - 11:32 Uhr

Hi…

Die image-maps sind nicht das Problem, deshalb habe ich ja die Karte per SVG gemacht.
Mein Problem ist, dass der eigentliche Filter (für die Bundesländer) ja eine Checkbox-Liste ist (und mit der Karte derzeit nichts zu tun hat), die ich nicht einfach mit Links ansprechen kann. Wenn ich nur die Bundesländer hätte wäre es kein Problem, nur habe ich noch andere Filter in Kombination…

Im Prinzip möchte ich eigentlich das Checkbox-Formular als Karte ausgeben, mit den einzelnen Bundesländern als jeweils eine checkbox.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, es muss ja kein Link

Eingetragen von Hyp1 (1463)
am 12.08.2015 - 12:37 Uhr

Hallo,

es muss ja kein Link im Image Map sein, Du kannst im Link Anchor ja auch Javascript ausführen.
Per Klick auf die Karte, statt einem Link einfach per JQuery oder Javascript die nötigen Checkboxen setzten.
Das gillt auch für die anderen Filter und deren Elemente SELECT,RADIO, etc...

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Per Klick auf die Karte,

Eingetragen von stixer2 (113)
am 12.08.2015 - 15:02 Uhr
Zitat:

Per Klick auf die Karte, statt einem Link einfach per JQuery oder Javascript die nötigen Checkboxen setzten.

Genau so was suche ich… habe aber von js keine Ahnung.

Ich habe das aber gefunden:
jQuery('#bayern').attr('checked','checked');
Ist das ein Ansatz? Ich weiß nur nicht, wie ich das genau einbinde, müsste doch in einen Link als wrapper, oder? Und vollständig ist das sicher auch nicht…

Der SVG-code sieht so aus (Auszug):

<g id="bayern">
<a xlink:href=" … " >
<path class="st0" d="M723.16,716.53c1-2.17,2.23-4.32,2.75-6.77c-0.7-0.32-1.3-0.45-1.67-0.81c-0.35-0.33-0.75-1.02-0.63-1.37
c0.82-2.34-0.75-3.85-2.[…]

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi,ja sowas in der Art

Eingetragen von Hyp1 (1463)
am 12.08.2015 - 18:04 Uhr

Hi,

ja sowas in der Art meinte ich.
Es gibt verschiedene Methoden wie Du JS im Theme einbinden kannst.
Du kannst das JS z.B: im Template html.tpl.php Deines Themes einbinden.
Oder z.B: im svg code <a xlink:href="jQuery('#bayern').attr('checked','checked');">
Oder <a xlink:href="#" onclick="jQuery('#bayern').attr('checked','checked');">

MfG

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

So weit ich das verstanden

Eingetragen von stixer2 (113)
am 13.08.2015 - 08:38 Uhr

So weit ich das verstanden habe, brauche ich folgendes:
Eine Funktion (function() ), die im body (und nicht im head?) steht, so was in der Art:

(function( $ ) {
    $.fn.checked = function(value) {
        if(value === true || value === false) {
            // Set the value of the checkbox
            $(this).each(function(){ this.checked = value; });
        }
        else if(value === undefined || value === 'toggle') {
            // Toggle the checkbox
            $(this).each(function(){ this.checked = !this.checked; });
        }

        return this;
    };
})( jQuery )

Und dann muss ich innerhalb des SVG für jedes Bundesland die function aufrufen. Also so in etwa: <a xlink:href="#" onclick="jQuery('#bayern').attr('checked','checked');"> ?

Mir fehlen wohl einfach die basics um das alles richtig zu verstehen, aber selbst wenn ich es hinbekomme, dass bei klick (z.B. auf Bayern) auch in der Checkbox Bayern angewählt wird, muss ja bei erneutem klick Bayern auch wieder abgewählt werden. Dann müsste das script doch sicher etwas mehr beinhalten, oder?

Was mich nur wundert, dass es dafür kein Modul gibt oder eine andere out-of-the-box-Lösung… Eine imagemap als views-Filter sollte eigentlich doch eine oft benötigte Funktion sein, oder? Es ist zum Verzweifeln…

Besten Dank so weit!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, Deine obige Funktion

Eingetragen von Hyp1 (1463)
am 13.08.2015 - 09:33 Uhr

Hallo,

Deine obige Funktion toggelt ja die Checkboxen bereits.
D.H. Wenn eine checkbox gecheckt ist wird Sie ungecheckt.
Schreib das in eine Javascript somescript.js Datei in Deinem Theme Ordner
und trag in der *.info Datei

Zitat:

scripts[] = somescript.js

ein.
Bei Änderungen am Theme musst Du den Cache leeren.

Da eine ImageMap mit einem externen Editor erstellt werden muss
und jede Imagemap anders ist, kann man hier auch keine Out of the Box Lösung erwarten.

Gruss

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Schreib das in eine

Eingetragen von stixer2 (113)
am 13.08.2015 - 14:31 Uhr
Zitat:

Schreib das in eine Javascript somescript.js Datei in Deinem Theme Ordner

Mein Problem ist leider, dass ich von js/jquery keine Ahnung habe und weit entfernt bin, scripte zu schreiben… Ich dachte, es gibt da bereits was fertiges bzw. einem template ähnlich, dass ich verändern kann. Eigentlich habe ich ja nicht mal einen Ansatz.

Zitat:

jede Imagemap anders ist, kann man hier auch keine Out of the Box Lösung erwarten.

Ich hatte gehofft, dass die imagemap keine Rolle spielt, dass so ein script quasi als Fernsteuerung für die checkbox-Liste funktioniert, egal wo das dann steht. Aber mir fehlen aber einfach schon die Grundkenntnisse. Da muss ich wohl erst mal ran, um überhaupt zu verstehen, was in den Tutorials steht…

Besten Dank und Grüße!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe es hinbekommen, wie

Eingetragen von stixer2 (113)
am 06.09.2015 - 17:44 Uhr

Ich habe es hinbekommen, wie ich die Checkbox ansteuern kann:

<script>
jQuery(document).ready(function($){

$.fn.checked = function(value) {
        if(value === true || value === false) {
            // Set the value of the checkbox
            $(this).each(function(){ this.checked = value; });
        }
        else if(value === undefined || value === 'toggle') {
            // Toggle the checkbox
            $(this).each(function(){ this.checked = !this.checked; });
        }
        return this;
    };

});
</script>

Im SVG habe ich folgenden Link, der die Checkbox triggert (#edit-field-bundesland-value-2 ist der input der Checkbox):

<g id="bayern">
<a xlink:href="#" onclick="jQuery('#edit-field-bundesland-value-2').trigger('click', function (i, value) { return !value;});">
<path class="st0" d="M723.16…

Das funktioniert so weit. Zwei Fragen habe ich dazu:
1. Ist der Code so weit in Ordnung oder kann man den vereinfachen/säubern?

2. Kann mir jemand sagen, wie ich dem path, der angeklickt wurde eine CSS Klasse geben kann? Diese müsste so lange bestehen, wie das Checkbox-item aktiv ist.

Danke und Grüße

  • 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 5 Tagen
  • Hey danke
    vor 1 Woche 6 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 4 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 5 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 6 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 22 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