Разве длинный щелчок не является щелчком, когда события mousedown
и mouseclick
значительно удалены друг от друга?Чтобы решить эту проблему, вы можете просто измерить время, которое требуется от события mousedown
до события щелчка, и проверить, если оно, например, дольше двух секунд (или что вы хотите).
Вы можете получить доступ к текущим миллисекундам с 01.01.1970 через new Date().getTime()
.Учитывая, что я бы интуитивно проверил такой «длинный щелчок».
$(".selector").mousedown(function() {
$(this).data("timestamp", new Date().getTime());
}).click(function(event) {
var e = $(this);
var start = e.data("timestamp");
e.removeData("timestamp");
if (start && new Date().getTime() - start > YOUR_DESIRED_WAIT_TIME_IN_MILLISECONDS) {
// Trigger whatever you want to trigger
} else {
event.preventDefault();
event.stopPropagation();
}
});