2012-09-27 30 views
7

Ive el siguiente código:jQuery clic en el enlace no funciona

<script type="text/javascript"> 
$(document).ready(function(){ 
    shortcut.add("Ctrl+Alt+N", function() { 
     $("#btnSave").click(); 
    }); 
}); 
</script> 

donde btnSave es elemento de anclaje con ID btnSave, acceso directo es de http://www.openjs.com/scripts/events/keyboard_shortcuts/. Si cambio la línea $("#btnSave").click(); a document.getElementById("btnSave").click() - todo funciona bien. La pregunta es por qué la implementación de jquery no funciona en mi caso.
PS: hecho jsFiddle para mi caso: http://jsfiddle.net/0x49D1/WCmeU/
Aquí está el tipo con un problema similar: http://forums.asp.net/t/1591818.aspx

+1

Dónde y cómo enlazar el evento click para '# btnSave'? – VisioN

+0

@VisioN, quiero simular el clic del usuario en el enlace. En realidad, esto es parte del código asp.net y haga clic en el enlace ejecuta invoca un evento de servidor. Aún así, vea mi ejemplo JSFIDDLE agregado. Y si el caso es con enlace de clic, ¿por qué 'document.getElementById (" btnSave "). Click();' está funcionando? – 0x49D1

Respuesta

10

En lugar de $("#btnSave").click(); tratan con $("#btnSave").trigger('click');

También puede utilizar $("#btnSave")[0].click(); que es jquery equivalente a document.getElementById("btnSave").click();

Actualización:
No es posible simular un usuario de enlace clic desde javascript, por razones de seguridad, todo lo que puede hacer es conectar su propio controlador para click evento y redirigir basado en la href del enlace, así:

$("#btnSave").bind('click', function() { 
    window.location.href = $(this).attr('href'); 
}); 
+0

El disparador parece ejecutarse, pero no se hace clic en el enlace. – 0x49D1

+0

Lo que quiere hacer no es posible, pero puede simularlo, vea mi actualización. – Nelson

+0

Entonces por qué 'shortcut.add (" Ctrl + Alt + N ", función() { // $ (" # btnSave "). Click(); document.getElementById (" btnSave "). Click(); }); 'Works? .. Creo que me falta algo :(http://jsfiddle.net/0x49D1/WCmeU/13/ – 0x49D1

1

probar esto

<script type="text/javascript"> 
     $(document).ready(function(){ 
     shortcut.add("Ctrl+Alt+N", function() { 
      $("#btnSave").live('click',function(){ 
      // do stuff here 
      }); 
     }); 
     }); </script> 
Cuestiones relacionadas