Как сначала найти щелчок мышью, а если нет, то перейти к наведению мыши
Как найти mouseclick
сначала, если не нажали, затем перейдите к mouseover
?
Я реализовал два типа функций в двух событиях мыши. Один в mouseover
а другой в mouseclick
,
Если я нажал, мне нужно вызвать mouseclick
событие первым, а не mouseover
событие. Я знаю, что по умолчанию, mouseover
срабатывает первым. Но как добиться этого типа сценария.
Код:
$('.example').mouseover(function (event) {
// ...
//mouse over logic
// ...
});
$('.example').mouseclick(function (event) {
// ...
//mouse click logic
// ...
});
Замечания:
Алос, я пытался с таймером, установить флажки управления, но в каждой попытке, только
mouseover
запускается первым. И то и другоеmouseover
а такжеmouseclick
имеет разные функциональные возможности. Если оба одинаковы, то мы можем объединить. Но здесь дело обстоит иначе. Я также искал по сети для этого. Но ничего не помогало до сих пор. Благодарю.
3 ответа
Как насчет определения события наведения мыши в событии щелчка?
Пример:
$('.example').mouseclick(function (event) {
// ...
//mouse click logic
// ...
$(body).bind('onmouseover', '.example'){
// mouseover logic
}
});
Я не проверял жестко...
У вас есть 2 варианта:
Запустите событие вручную:
$(this).trigger('mousehover');
Поместите это в обработчик кликов.
Сохраните обработчик в переменной и запустите его вручную в обработчике кликов.
Должно быть достаточно легко реализовать это самостоятельно
Используйте следующее:
var timer;
$(".example").on("mouseenter",function(e){
timer=setTimeout(function(){
// onmouseenter if not clicked
$(".example").css({background:"red"}); // for testing
}, 2000);
});
$('.example').click(function (event) {
clearTimeout(timer); // Don't call the onmouseenter
$(".example").css({background:"blue"}); // for testing
});