Объединить функции наведения и щелчка (jQuery)?
Можно навести и щелкнуть функции, объединенные в один, например, например:
нажмите:
$('#target').click(function() {
// common operation
});
парения:
$('#target').hover(function () {
// common operation
});
можно ли их объединить в одну функцию?
Спасибо!
Ответы
Ответ 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
}
});