El disparador jQuery (‘clic’) no funciona con Jasmine-jquery

Este es mi código de prueba:

describe("Login", function(){ beforeEach(function(){ loadFixtures('login-fixture.html'); }) it("should enable the button when checking 'remember password'", function(){ $('#remember').trigger('click'); expect($('#keepIn')).not.toBeDisabled(); }); }); 

Y este es mi código de producción:

 $(document).ready(function(){ $('#remember').click(function(e) { if($('#remember').is(':checked')) { $('#keepIn').removeAttr('disabled'); } }); }); 

Esto no está funcionando, el código de producción nunca se llama. He puesto alertas antes y después del evento de activación y después de la activación, la checkbox está marcada, pero no se llama a la función .click.

¿Alguna idea sobre por qué está sucediendo esto?

Sin ver el rest del código, asumo que “login-fixture.html” contiene la checkbox “#recuerda”. Si es así, se está cargando después de que se carga el DOM. Lo que significa que el evento ‘clic’ que desea asignar solo se aplicará a los elementos cargados previamente. El evento jQuery on () asignará cualquier evento que desee a los elementos recién cargados. Es posible que desee intentar agregar un evento on () a ese ID. Algo como:

 $(function(){ $('#remember').on('click', function(){ if($('#remember').is(':checked')){ $('#keepIn').checkboxradio('enable'); } }); }); 

Espero que ayude.

Ver: http://api.jquery.com/on/