Может колебаться и нажать функции быть объединенным в одну, так например:
щелчок:
$('#target').click(function() {
// common operation
});
парение:
$('#target').hover(function () {
// common operation
});
они могут быть объединены в одну функцию?
Спасибо!
Используйте базовую программную композицию: создайте метод и передайте ту же функцию щелкните
и наведите указатель мыши
в качестве обратного вызова .
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
});
Вы можете использовать .bind ()
или .live ()
в зависимости от того, что подходит, но не нужно назовите функцию:
$('#target').bind('click hover', function () {
// common operation
});
или если вы делали это для большого количества элементов (не имеет особого смысла для IE, если только элемент не изменится):
$('#target').live('click hover', function () {
// common operation
});
Обратите внимание, это только привяжет первый аргумент при наведении курсора, событие mouseover
, оно ничего не связывает с событием mouseleave
.
$("#target").hover(function(){
$(this).click();
}).click(function(){
//common function
});
var hoverAndClick = function() {
// Your actions here
} ;
$("#target").hover( hoverAndClick ).click( hoverAndClick ) ;
Я думаю, что лучший подход - сделать общий метод и вызвать в событиях hover и click .
Вы также можете использовать bind :
$('#myelement').bind('click hover', function yourCommonHandler (e) {
// Your handler here
});