I can trigger click event on element selector using trigger
$('element selector').trigger('click')
Is it possible to trigger shift click. I mean shift + left mouse click.
asked Mar 6, 2015 at 9:33
Maksim Yefremov
14.3k28 gold badges124 silver badges171 bronze badges
-
2you mean do you want to programically create a shift+mouse click ?Arunprasanth K V– Arunprasanth K V2015年03月06日 09:57:16 +00:00Commented Mar 6, 2015 at 9:57
-
1@ArunprasanthKV exactlyMaksim Yefremov– Maksim Yefremov2015年03月06日 09:59:09 +00:00Commented Mar 6, 2015 at 9:59
3 Answers 3
try
var shiftClick = jQuery.Event("click");
shiftClick.shiftKey = true;
$("element selector").click(function(event) {
if (event.shiftKey) {
alert("Shift key is pressed");
}
else {
alert('No shift hey');
}
});
$("element selector").trigger(shiftClick);
answered Mar 6, 2015 at 9:59
alquist42
7491 gold badge8 silver badges21 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
You can check event.shiftKey boolean propery.
$("element selector").click(function(event) {
if (event.shiftKey) {
alert("Shift key is pressed");
}
});
answered Mar 6, 2015 at 9:37
Sadikhasan
18.6k23 gold badges85 silver badges126 bronze badges
1 Comment
Maksim Yefremov
thank you, but I need
trigger not handler. Trigger is something that simulates shift click but not handle it.Recently I tried the accepted solution using jQuery 4.0.0 BETA! (it's 2024, I know) to automate "shift + left click" interaction, but it's flaky in some cases for some reason. Not sure why. 🤷🏻 So I resorted to a more native solution below and it worked for me:
const elem = document.querySelector('button');
// Listen for the event.
elem.addEventListener('click', event => {
if (event.shiftKey) {
alert('shift key is pressed when clicked');
return;
}
alert('shift key NOT pressed when clicked');
});
// Dispatch the event.
const shiftClickEvent = new MouseEvent('click', { shiftKey: true });
elem.dispatchEvent(shiftClickEvent);
answered Apr 10, 2024 at 20:34
Glenn Mohammad
4,9156 gold badges45 silver badges54 bronze badges
Comments
lang-js