ホバー機能とクリック機能を1つにまとめることができます。たとえば、次のとおりです。
クリック:
$('#target').click(function() {
// common operation
});
ホバー:
$('#target').hover(function () {
// common operation
});
それらを1つの機能に結合できますか?
ありがとう!
基本的なプログラミング構成を使用します。メソッドを作成し、同じ関数をコールバックとしてclick
とhover
に渡します。
var hoverOrClick = function () {
// do something common
}
$('#target').click(hoverOrClick).hover(hoverOrClick);
2番目の方法:使用 bind
on
:
$('#target').on('click mouseover', function () {
// Do something for both
});
jQuery('#target').bind('click mouseover', function () {
// Do something for both
});
代わりにmouseoverを使用します。
$('#target').on('click mouseover', function () {
// Do something for both
});
.bind()
または.live()
のいずれか適切な方を使用できますが、関数に名前を付ける必要はありません。
$('#target').bind('click hover', function () {
// common operation
});
または、多くの要素でこれを行っていた場合(IE要素が変更されない限り、あまり意味がありません):
$('#target').live('click hover', function () {
// common operation
});
これはfirst hover引数、mouseover
イベントのみをバインドし、mouseleave
イベントには何もフックしないことに注意してください。
$("#target").hover(function(){
$(this).click();
}).click(function(){
//common function
});
var hoverAndClick = function() {
// Your actions here
} ;
$("#target").hover( hoverAndClick ).click( hoverAndClick ) ;
bind を使用することもできます。
$('#myelement').bind('click hover', function yourCommonHandler (e) {
// Your handler here
});
commonメソッドを作成してhoverおよびclickevents。
$("#target").on({
hover: function(){
//do on mouse hover
},
click: function(){
//do on mouse click
}
});