JQuery: rendere cliccabile intero blocco, preservando la possibilità di aprirsi in una nuova scheda/finestra

StackOverflow https://stackoverflow.com/questions/5387199

Domanda

Non voglio usare CSS per espandere la larghezza/altezza del collegamento ecc.

Con il mio codice, l'intera Li è cliccabile, apre il link che si trova al suo interno. Ho preservato il clic centrale del mouse per aprire il collegamento in una nuova finestra.

  1. Mi chiedo se qualcuno che in realtà sa davvero cosa stanno facendo può guidarmi in questo e farmi sapere se questo è il modo migliore per scrivere questo, o ci sono alterazioni che potrebbero essere apportate al mio codice?

  2. Inoltre: qualcuno può aiutarmi ad aggiungere un "CTRL+clic sinistro" per aprire il link in una nuova finestra, che è la stessa cosa che fa un clic di un pulsante medio-mouse, non sono sicuro di come testare CTRL? Ho pensato di cambiare ilelse if ((e.which == 2)) { parte a else if ((e.which == 2) && (e.which == 16)) { funzionerebbe, ma non lo fa.

codice:

$('li a').each(function() {
            $(this).parent().bind('click', function(e) {
                if((e.which == 1)) {
                    alert('left mouse button clicked')
                    window.location=$(this).find("a").attr("href"); return false;
                }
                else if ((e.which == 2)) {
                    alert('middle mouse button clicked')              

                        window.open($(this).find('a').attr('href'));
                        return false;  
                }
            });
        });
È stato utile?

Soluzione

Ecco la tua guida per rilevare quali chiavi vengono premute (è tutto il mondo in arrivo): http://www.quirksmode.org/js/keys.html

Si noti che su OSX è impossibile nella maggior parte dei browser.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top