Pregunta ¿Combina las funciones de desplazamiento y clic (jQuery)?


Las acciones de desplazamiento y clic pueden combinarse en una, por ejemplo:

hacer clic:

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

flotar:

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

se pueden combinar en una sola función?

¡Gracias!


36
2018-03-12 10:30


origen


Respuestas:


Use la composición de programación básica: cree un método y pase la misma función a click y hover como una devolución de llamada.

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

Segunda forma: uso bindon:

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

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

87
2018-03-12 10:37



Utilizar ratón sobre en su lugar flotar.

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

26
2017-12-09 09:57



Puedes usar .bind() o .live() lo que sea apropiado, pero no es necesario nombrar la función:

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

o si estaba haciendo esto en un montón de elementos (no tiene mucho sentido para un IE a menos que el elemento cambie):

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

Tenga en cuenta que esto solo vinculará el primero flotar el argumento, el mouseover evento, no enganchará nada al mouseleave evento.


9
2018-03-12 10:55



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

6
2018-03-12 10:32



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

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

1
2018-03-12 10:37



También podrías usar enlazar:

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

1
2018-03-12 10:40



Creo que el mejor enfoque es hacer una común método y llamada en flotar y hacer clic  eventos.


0
2018-03-12 10:36



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

0
2018-02-23 11:41