C:S: [jQuery] Parameter Weitergabe innerhalb einer Seite

Abend,
folgender Fall: Ich habe eine aus einer Datenbank generierte Tabelle mit Produkten. In jeder Zeile gibt es zu dem jeweiligen Produkt einen Link. Wird der Link angeklickt, wird eine jQuery Funktion aufgerufen, etwa so:

$('.produktLink').click(function(){ ... });

Nun brauche ich in dieser Funktion die ID, und später evtl. noch den Namen des angeklickten Produktes.

Jetzt würde ich gerne wissen, wie ich diese Parameter am sinnvollsten übergebe.
Ich denke, dass es am sinnvollsten ist, die Parameter in href einzubinden, und dann in jQuery irgendwie per $(this).attr('href') darauf zuzugreifen.
Doch bevor ich mit Regular Expressions anfange wollte ich mal nachfragen obs für so einen Fall nicht eine Art "Best Practice" gibt und man diesen Anwendungsfall eleganter lösen kann.

Gruß, CS

  1. Hallo CS,

    Der Name des Produkts waere doch ideal im title-Attribut aufgehoben, sodass Du dein Problem einefach so loesen koenntest.

    $('.productLink').click(function() {  
      alert([this.title, this.id]);  
    });
    

    Gruss

    Dieter

    1. Hallo CS,

      Der Name des Produkts waere doch ideal im title-Attribut aufgehoben, sodass Du dein Problem einefach so loesen koenntest.

      $('.productLink').click(function() {

      alert([this.title, this.id]);
      });

      
      >   
      >   
      > Gruss  
      >   
      > Dieter  
        
      Das ist zu einfach ;) Nein, in diesem Fall wäre es whr sogar das schlaueste, stimmt schon. Trotzdem würde mich interessieren wie man so ein Problem im Allgemeinen angeht, sodass man theoretisch beliebig viele Parameter übergeben könnte.  
      Gruß, CS
      
      1. Kommt darauf an. Manchmal kann man Parameter semantisch sinnvoll in Elementattributen speichern, manchmal nicht. Im zweiten Fall koennte man die Parameter zB. in einem Object vorhalten, oder via Ajax einschleusen.

        Beispiel Googlemap:
        Um eine Map zu mit Routenplaner zu bauen, braucht man in etwa die gleichen Informationen wie fuer eine Adresse, die ja in der Regel auf der gleichen Seite anzutreffen ist. Man kann dann zB. die Adresse komplett mit Microformaten ausstatten und schon hat man Zugriff auf alle erdenklichen Parameter.

        Beispiel Produktliste:
        Auch hier bieten sich natuerlich erstmal Microformate an. Daneben kann man aber auch beim Generieren der Liste die jeweiligen Zusatzparameter in einen String speichern, der das Format eines Javascript-Objects hat und diesen am Ende des Scripts in einem <script>-Element ausgeben.

        Allgemeiner Ansatz

        function foo(para1, para2) {  
          $('selector').event(function() {  
            // hier stehen jetzt das Element und die Parameter bereit  
          })  
        }
        

        Deiner Fantasie sind da keine Grenzen gesetzt.

    2. Hallihallo!

      Was ich auch gerne mache, ist, die meist numerische ID des Datensatzes im rel-Attribut unterzubringen.
      Da ja die Werte im id- Attribut nicht mit einer Zahl beginnen dürfen, und ich das auch für semantisch sinnvoll halte…

      Beste Grüsse,
          Tobias Hahner

      1. Hallo Tobias,

        Was ich auch gerne mache, ist, die meist numerische ID des Datensatzes im rel-Attribut unterzubringen.

        Wenn's den sinnvoll ist, warum nicht

        Da ja die Werte im id- Attribut nicht mit einer Zahl beginnen dürfen, und ich das auch für semantisch sinnvoll halte…

        Kann man aber leicht umgehen, indem man die ID mit einem Prefix anfaengt und dieses dann bei Bedarf rausschmeisst oder ersetzt.

        Gruss

        Dieter

  2. Hi,

    Jetzt würde ich gerne wissen, wie ich diese Parameter am sinnvollsten übergebe.

    Wenn die Werte nicht eh schon im Inhalt vorliegen, so dass du sie von dort auslesen kannst - HTML5 custom data attributes.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]