2012-07-11 37 views
6

Tengo el siguiente:Jquery .on() no funciona

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

Dentro de jQuery tengo a mano la siguiente:

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

Esto no funciona. Estoy usando IE9.

¿Alguien podría saber qué versión de Jquery es compatible con .on()?

+0

¿Estás utilizando la última versión de IE? Además, ¿'' submit' se genera dinámicamente? –

+2

¿Qué significa "no funciona"? ¿Estás recibiendo algún error? ¿Qué esperas que pase? – j08691

+0

Puede ser una pregunta tonta, pero, ¿estás cargando jQuery? Y si es así, ¿qué versión? .on() es algo más nuevo. – naspinski

Respuesta

6

Utilice esta versión de on

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

tnx, era un salvavidas. IE realmente debería morir! – Nemke

+0

@Nemke: De nada. Me alegro de poder ayudar. :) – Shyju

3

Asegúrese de cargar jQuery.js luego tratar:

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

suplentes Pruebe lo siguiente:

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

O

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

.live() también funciona (obsoleto) – naspinski

1

IE no funciona bien cuando se utilizan nombres 'reservados' como ID del elemento.

Ver el violín, el código funciona muy bien si cambia el ID de la entrada a algo diferente a '#submit'

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

+0

'# submit' funciona bien para mí en IE9. http://jsfiddle.net/wS4xC/1/ –

+0

@Rocket: ¡¡esto también funciona para mí !!. Creo que puedo estar en una versión anterior de Jquery. ¿En qué versión es compatible? –

+0

@NatePet: la última versión de jQuery es 1.7.2. –

0

Asegúrese de que el elemento de 'enviar' se está refiriendo a la realidad existe en la carga del documento. Si lo está creando dinámicamente, la función 'on' no tendrá nada para vincularlo.

0

Me encontré con esto al utilizar IE9 en modo de compatibilidad. Tenga en cuenta que no tuve ningún problema al usar IE9 en modo normal.

Pude hacer un control de calidad más completo para un sitio que acabo de lanzar (el tiempo no permitía muchas pruebas entre navegadores más allá de usar un servicio de captura de pantalla). Cambiando $ ("algo"). On ("click" ...) a $ ("algo"). Click() solucionó el problema.

+0

¿Entonces esto es básicamente lo mismo que la respuesta de [* mgraph *] (http://stackoverflow.com/a/11439239/1715579)? –

+0

Di un ejemplo específico de dónde no funciona, ya que de otro modo funciona en los navegadores modernos. – josh1978