Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] jquery delegate öffnet sich 4 mal

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] jquery delegate öffnet sich 4 mal

    Hallo zusammen,

    Ich blicks einfach nicht... Lade per Ajax formulare nach, wenn ich nun per .delegate() auf einen Button klicken will, wird die Aktion 4 mal ausgeführt und ich habe kein Plan woran das liegt -.-"

    Mein Javascript Code:

    Code:
    $(function(){
    $('div').delegate('#changeMemberShipUser[userChangeId]', 'click', function(){
    		alert("test");
    	});
    });
    HTML:
    Code:
    <div class="widget">
                	<form class="form-horizontal">
    			 	 <div class="widget-content no-padding">
    			  		<div class="form-row">
                  	   	 <label class="field-name">Username:</label>
                  	   	 <div class="field">
                  	    	  <input type="text" class="span3">
                  	   	 </div>
                  	   </div>
    				   <div class="form-row">
                  	   	 <label class="field-name">E-Mail:</label>
                  	   	 <div class="field">
                  	    	  <input type="text" class="span3" name="standard" id="standard"">
                  	   	 </div>
                  	   </div>
    				   <div class="form-row" >
                  	   	 <label class="field-name">Mitgliedschaft:</label>
    					  <div class="field noSearch" id="freaky" userid="'.$userid.'">
    						<select class="uniform span2">
    						  ...</select>
    
    						<input type="date" class="span2" id="dateinput" placeholder="Format: YYYY-mm-dd H:i:s" pattern="[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}">  <a href="javascript:void(0);" id="changeMemberShipUser" userChangeId="'.$userid.'" class="button small-button button-yellow">Change</a>
    					  </div>
                  	   </div>
    				   <div class="form-row">
    					  ....
    					</div>
    				   
    			 	 </div>
    				</form>
    			  </div>
    Kann mir jmd helfen?

    Gruß
    prophet

  • #2
    http://api.jquery.com/delegate/
    delegate ist veraltet, nutze .on();
    Wenn das Problem dann immernoch auftritt wäre es gut, wenn du dazu ein kurzes jsfiddle schreiben könntest.
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      Das Problem besteht weiterhin.

      Hier das kurze jsfiddle http://jsfiddle.net/kkHZ3/4/

      Kommentar


      • #4
        .on richtig einsetzen.
        http://jsfiddle.net/kkHZ3/6/

        Kommentar


        • #5
          Gibts nen Grund, warum du überhaupt 'on' (oder 'delegate') nutzt, und nicht direkt
          Code:
           $('#changeMemberShipUser').click(function(){});
          ?

          Wenn das on unbedingt nötig ist funktioniert es so:
          http://jsfiddle.net/kkHZ3/7/
          [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

          Kommentar


          • #6
            @rkr: okee vielen Danke, geht!

            @tkausl: Der Grund ist, dass die Buttons dynamisch per AJAX nachgeladen werden und die Handler meines Wissens nach nicht funktionieren

            Kommentar


            • #7
              Zitat von rkr Beitrag anzeigen
              .on richtig einsetzen.
              http://jsfiddle.net/kkHZ3/6/
              Verdammt, bin ich garnicht drauf gekommen.

              Nebenbei: Das
              Code:
              javascript:void(0);
              ist unnötig, nutze dafür lieber
              Code:
              event.preventDefault();
              im Handler.
              [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

              Kommentar


              • #8
                Danke für den Hinweiß! Werde ich ändern!

                Kommentar


                • #9
                  Zitat von tkausl Beitrag anzeigen
                  Nebenbei: Das
                  Code:
                  javascript:void(0);
                  ist unnötig, nutze dafür lieber
                  Code:
                  event.preventDefault();
                  im Handler.
                  Eigentlich ein guter Einwand. Aber ich spare mir die Zeile Code im JS lieber aus und habe die im HTML. Ist Geschmackssache!

                  @TE: Schau dir vllt mal AngularJS an. jq ist irgendwie so 2011

                  Kommentar

                  Lädt...
                  X