Domanda

qualcuno può dirmi qual è la differenza tra l'assegnazione di gestori di eventi utilizzando bind():

$(function(){
           $('someElement')
           .bind('mouseover',function(e) {
            $(this).css({
                        //change color
                        });
    })
    .bind('mouseout',function(e) {
        $(this).css({
                    //return to previous state

                 });    
    })
    .bind('click',function(e) {
        $(this).css({
                    //do smth.
                 });    
    })

}); 

e l'utilizzo di ogni() per la stessa attività:

$('someElement').each(function(){

        $(this).mouseover(function(){$(this).css({/*change color*/})
                    .mouseout(function(){$(this).css({/*return to previous state*/});   
                    });     
                }); 
    });

grazie.

È stato utile?

Soluzione

Dagli esempi che hai dato, penso che in realtà stai chiedendo quale sia la differenza, se c'è tra il "binding" metodo e quindi un 'evento' metodi.

Per esempio, qual è la differenza tra:

$('.some_element').bind('click',function() { /* do stuff */ });

...e questo?

$('.some_element').click(function() { /* do stuff */ });

La risposta è che davvero non importa.È una questione di preferenza.L'evento metodi sono sintatticamente più semplice e coinvolgere meno di battitura, ma, per quanto ne so non c'è davvero alcuna differenza.Io preferisco usare i bind metodi, perché è possibile utilizzare la scorciatoia evento vincolante, se avete bisogno di collegare più di un evento per la stessa azione.Rende anche più semplice capire quando/se avete bisogno di 'separare' un evento.

Vedi qui: Differenza tra .legare e altri eventi

Ma, da quello che la domanda chiede: "Qual è la differenza tra la 'di ogni metodo e il "binding " metodo"...beh, questo è un modo completamente diverso di bestia.

Non si dovrebbe mai usare realmente la 'di ogni metodo per collegare gli eventi, in quanto il "bind" e 'l'evento' metodi utilizzare il molto più veloce selettore CSS motore (in jQuery caso, utilizza lo Sfrigolio del motore).

Non c'è quasi mai (o quasi mai) in un caso in cui questo:

$('.some_element').each(function() { $(this).click(function() { /* do something */ }); });

...è meglio di questo:

$('.some_element').bind('click',function() { /* do stuff */ });
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top