2012-07-11 23 views
6

Ich habe folgendes:JQuery .on() funktioniert nicht

<input type="submit" id="submit" value="Submit" /> 

Innerhalb von jQuery Ich habe habe folgendes:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#submit").on("click", function() { 
     alert('test'); 
    }); 
}); 
</script> 

Das funktioniert nicht. Ich verwende IE9.

Könnte jemand wissen, welche Version von Jquery .on() unterstützt?

+0

Verwenden Sie die neueste Version von IE? Wird "# submit" auch dynamisch generiert? –

+2

Was bedeutet "nicht funktioniert"? Erhalten Sie irgendwelche Fehler? Was erwartest du zu passieren? – j08691

+0

Könnte eine dumme Frage sein, aber laden Sie jQuery? Und wenn ja, welche Version? .on() ist etwas neuer. – naspinski

Antwort

6

Mit dieser Version von on

$(function(){ 
    $(document).on("click","#submit", function (e) { 
    //e.preventDefault(); // if you want to prevent default form submission 
    alert('test'); 
    }); 
}); 
+3

Tnx, es war ein Lebensretter. IE sollte wirklich sterben! – Nemke

+0

@Nemke: Gern geschehen. Froh, dass ich helfen konnte. :) – Shyju

3

stellen Sie sicher, jQuery.js laden dann versuchen:

$("#submit").click(function(){ 
    alert("test"); 
}) 
1

Versuchen folgende Stellvertreter:

$('#submit').bind('click', function() { 
    alert('Test'); 
}); 

ODER

$("#submit").click(function(){ 
    alert("Test"); 
}); 
+0

.live() funktioniert auch (veraltet) – naspinski

1

IE funktioniert nicht gut, wenn reservierte Namen als Element-ID verwendet werden.

diese Geige sehen, funktioniert der Code groß, wenn Sie die ID des Eingangs zu etwas als ‚#submit‘ anders ändern

http://jsfiddle.net/6yAuz/3/

+0

'# submit' funktioniert gut für mich in IE9. http://jsfiddle.net/wS4xC/1/ –

+0

@Rocket - das funktioniert auch für mich !!. Ich denke, ich könnte auf einer älteren Version von Jquery sein. Auf welcher Version wird es unterstützt? –

+0

@NatePet: Die neueste Version von jQuery ist 1.7.2. –

0

Stellen Sie sicher, dass das Element, um tatsächlich die Sie sich beziehen ‚submit‘ existiert beim Laden von Dokumenten. Wenn Sie es dynamisch erstellen, hat die 'on' Funktion nichts zu binden.

0

Ich begegnete dies bei der Verwendung von IE9 im Kompatibilitätsmodus. Hinweis, ich hatte kein Problem, wenn ich IE9 im regulären Modus verwende.

Ich war in der Lage, eine gründlichere QA für eine Website zu starten, die ich gerade gestartet habe (die Zeit erlaubte nicht viel Cross-Browser-Tests über die Verwendung eines Screenshot-Dienstes hinaus). Ändern von $ ("etwas"). On ("klick" ...) zu $ ​​("etwas"). Click() behob das Problem.

+0

Also das ist im Grunde das gleiche wie [* mgraph * 's Antwort] (http://stackoverflow.com/a/11439239/1715579)? –

+0

Ich gab ein konkretes Beispiel, wo es nicht funktioniert, wie der andere Weg in modernen Browsern funktioniert. – josh1978