2013-06-10 18 views
5

Mam menu na mojej stronie i jestem obecnie pisania skryptu, który ustawia wszystkie kliknięcia zdarzeń dla przycisków menu. Każdy przycisk wywoła własną metodę, więc musi być ustawiony jawnie.Wiele na() lub przełącznik() w jednym na()

moje pytanie, po prostu, to który z dwóch następujących metod lepiej jest użyć w tej sytuacji:

$(document).on('click','#menu .button', function(){ 
    switch($(this).attr('id')){ 
     case 'foo_button': 
      // Set the event for the foo button 
     break; 
     case 'bar_button': 
      // Set the event for the bar button 
     break; 
     // And the rest of the buttons 
    } 
}); 

czyli

$(document).on('click','#foo_button',function(){ 
    // Set the event for the foo button 
}); 
$(document).on('click','#bar_button',function(){ 
    // Set the event for the bar button 
}); 
// And the rest of the buttons 

bym myślał opcja 1 byłoby lepiej ponieważ ustawia tylko jedno zdarzenie ... Jednak zdarzenie to będzie wywoływane za każdym kliknięciem przycisków menu, więc trudno jest ustalić, który z nich byłby bardziej wydajny.

+1

jQuery już to robi. – SLaks

+0

@SLaks Jak w jQuery stosuje instrukcja switch? –

Odpowiedz

2

Jeśli funkcja handlowa jest naprawdę inna dla każdego innego identyfikatora przycisku, każdy powinien być zarejestrowany za pomocą własnego połączenia z numerem on().

Prawdopodobnie nie spowoduje to zauważalnej różnicy w działaniu kodu, ale znacznie ułatwi to czytanie innym programistom (lub nawet samemu w celu konserwacji) w przyszłości.

+0

Świetnie, właśnie to chciałem znać +1. Czy możesz jednak wyjaśnić, dlaczego? –

+0

Awesome, dziękuję za informacje, zaakceptuje, kiedy mogę :-) –

Powiązane problemy