Обнаружить CMD/CTRL, нажать select2-selecting

Я использую Select2 на своем веб-сайте для обработки результатов поиска. Когда пользователь щелкает элемент в списке результатов, событие select2-selecting запускается, как и должно быть, и я заставил его отправить пользователя к выбранному результату.

$('.select2').on("select2-selecting", function(e) { 
    window.location.href = 'item/' + e.object.id;
});

Могу ли я каким-то образом определить, удерживает ли пользователь клавишу cmd (или ctrl в Windows) и открывает страницу в новой вкладке?


person Oskar Persson    schedule 20.08.2013    source источник
comment
Каков результат window.console.log(e);? Это может быть if(e.ctrlKey) как в jQuery   -  person Ron van der Heijden    schedule 20.08.2013


Ответы (1)


Используя ответ герцога здесь и ответ hluk здесь. Я придумал это решение:

$(document).bind('keyup keydown', function(e){
    if(e.ctrlKey || e.metaKey){
        keyIsDown = true;
    }else{
        keyIsDown = false;
    }
});

$('.select2').on("select2-selecting", function(e) { 
    url = 'item/' + e.object.id;
    if(keyIsDown){
        var win=window.open(url, '_blank');
        win.focus();
    }else{
        window.location.href = scriptPath + 'item/' + e.object.id;
    }
});
person Oskar Persson    schedule 20.08.2013