2016-07-13 24 views
-3

Ich habe ein HTML mit verbundenen js-Datei es funktioniert.Warum hört Jquery den Ereignisklick nicht?

Wenn ich versuche, $('#userAdd').click(addUser); in Google Console (Inspektor) zu schreiben.

Meine js .click wie folgt aussieht:

$(document).ready(function() { 
    $('#userAdd').click(addUser()); 
}); 

HTML-Element wie folgt aussieht:

<div class="row">          
    <div class="form-group col-md-12"> 
     <div class="col-md-12"> 
<input id="userAdd" type="submit" value="Add" class="btn col-md-12 btn-primary "> 
     </div> 
    </div> 
</div> 

ich einige Haltepunkte setzen in "Quellen" von Inspektor auf meinem .click und es funktioniert nur wenn die Seite geladen oder neu geladen wird.

Update: jetzt alles funktioniert Lösung war

$('#userAdd').click(function() { addUser(); }); 

Und diese funktioniert nicht aus irgendeinem Grund

$('#userAdd').click(addUser); 
+1

Haben Sie Fehler? – Li357

+3

Entfernen Sie die innere Klammer in 'click (addUser())'. Es sollte 'click (addUser)' sein. Die Klammer nach dem Funktionsnamen ruft sie sofort auf. – j08691

+0

@AndrewL. Nein, Konsole ist absolut klar –

Antwort

4

Dieses:

$('#userAdd').click(addUser()); 
          ^^ 

Da Sie (), die addUser Funktion wird sofort aufgerufen, und sein Rückgabewert ist was wird das Argument zu click(). Versuchen Sie

$('#userAdd').click(addUser); 
or $('#userAdd').click(function() { addUser(); }); 

stattdessen.

+0

@ Marc B ändern. Also, jetzt verstehe ich mehr, warum mein debuger war so whild: DDD Danke. Auch geholfen Lösung von @ Ich bin zurück –

+0

Vielen Dank. Es hat mein Problem gelöst –