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.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    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/
        Standards - Best Practices - AwesomePHP - Guideline für WebApps

        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/
          Zitat von nikosch
          Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

          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.
              Zitat von nikosch
              Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

              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
                  Standards - Best Practices - AwesomePHP - Guideline für WebApps

                  Kommentar

                  Lädt...
                  X