2012-09-27 23 views
7

Ive il seguente codice:JQuery click sul link non funzionante

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

dove btnSave è elemento di ancoraggio con ID btnSave collegamento è da http://www.openjs.com/scripts/events/keyboard_shortcuts/. Se cambio la linea $("#btnSave").click(); a document.getElementById("btnSave").click() - tutto funziona bene. La domanda è: perché l'implementazione di jQuery non funziona nel mio caso?
PS: fatto jsfiddle per il mio caso: http://jsfiddle.net/0x49D1/WCmeU/
Ecco il ragazzo con problemi simili: http://forums.asp.net/t/1591818.aspx

+1

Dove e come si fa a impegnare l'evento click per '# btnSave'? – VisioN

+0

@VisioN, voglio simulare il clic dell'utente sul link. In realtà questo fa parte del codice asp.net e fai clic sul link per avviare alcuni eventi del server. Ancora, guarda il mio campione JSFIDDLE aggiunto. E se il caso è con associazione di clic, perché 'document.getElementById (" btnSave "). Click();' funziona? – 0x49D1

risposta

10

Invece di $("#btnSave").click(); provare con $("#btnSave").trigger('click');

È inoltre possibile utilizzare $("#btnSave")[0].click(); che è jQuery equivalente a document.getElementById("btnSave").click();

Aggiornamento:
Non è possibile simulare un collegamento utente click da JavaScript, per motivi di sicurezza, tutto quello che puoi fare è collegare il proprio gestore per click eventi e reindirizzare in base alla href del collegamento, in questo modo:

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

Sembra che il trigger venga eseguito, ma il link non viene cliccato .. – 0x49D1

+0

Quello che vuoi fare non è possibile, ma puoi simularlo, guarda il mio aggiornamento. – Nelson

+0

Quindi perché 'shortcut.add (" Ctrl + Alt + N ", function() { // $ (" # btnSave "). Click(); document.getElementById (" btnSave "). Click(); }); 'Funziona? .. Pensa mi manca qualcosa :(http://jsfiddle.net/0x49D1/WCmeU/13/ – 0x49D1

1

provare questo

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