Парение объединения и функции щелчка (jQuery)?

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

щелчок:

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

парение:

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

они могут быть объединены в одну функцию?

Спасибо!

39
задан 3zzy 12 March 2010 в 10:30
поделиться

6 ответов

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

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

Второй способ: используйте привязку к :

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

jQuery('#target').bind('click mouseover', function () {
    // Do something for both
});
93
ответ дан 27 November 2019 в 02:03
поделиться

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

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

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

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

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

9
ответ дан 27 November 2019 в 02:03
поделиться
$("#target").hover(function(){
  $(this).click();
}).click(function(){
  //common function
});
8
ответ дан 27 November 2019 в 02:03
поделиться
var hoverAndClick = function() {
    // Your actions here
} ;

$("#target").hover( hoverAndClick ).click( hoverAndClick ) ;
1
ответ дан 27 November 2019 в 02:03
поделиться

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

0
ответ дан 27 November 2019 в 02:03
поделиться

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

$('#myelement').bind('click hover', function yourCommonHandler (e) {
   // Your handler here
});
1
ответ дан 27 November 2019 в 02:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: