Подтвердить что ты не робот

Объединить функции наведения и щелчка (jQuery)?

Можно навести и щелкнуть функции, объединенные в один, например, например:

нажмите:

$('#target').click(function() {
  // common operation
});

парения:

$('#target').hover(function () {
    // common operation
});

можно ли их объединить в одну функцию?

Спасибо!

4b9b3361

Ответ 1

Используйте базовую композицию программирования: создайте метод и передайте ту же функцию в click и hover в качестве обратного вызова.

var hoverOrClick = function () {
    // do something common
}
$('#target').click(hoverOrClick).hover(hoverOrClick);

Второй способ: использовать bind on:

$('#target').on('click hover', function () {
    // Do something for both
});

Ответ 2

Используйте вместо мыши курсор мыши.

$('#target').on('click mouseover', function () {
    // Do something for both
});

Ответ 3

Вы можете использовать .bind() или .live() в зависимости от того, что подходит, но не нужно называть функцию:

$('#target').bind('click hover', function () {
 // common operation
});

или если вы делали это на множестве элементов (не так много смысла для IE, если элемент не изменяется):

$('#target').live('click hover', function () {
 // common operation
});

Обратите внимание, что это будет привязывать только аргумент hover first, событие mouseover, он ничего не будет подключать к событию mouseleave.

Ответ 4

$("#target").hover(function(){
  $(this).click();
}).click(function(){
  //common function
});

Ответ 5

var hoverAndClick = function() {
    // Your actions here
} ;

$("#target").hover( hoverAndClick ).click( hoverAndClick ) ;

Ответ 6

Вы также можете использовать bind:

$('#myelement').bind('click hover', function yourCommonHandler (e) {
   // Your handler here
});

Ответ 7

Я думаю, лучший подход - сделать общий метод и вызвать hover и щелкнуть.

Ответ 8

  $("#target").on({
        hover: function(){
           //do on mouse hover
        },  
        click: function(){
            //do on mouse click
        }  
    });