questo codice dovrebbe essere strutturato in un evento di cattura e un metodo o inserire la funzionalità nell'evento che cattura

0

Ho adottato un codice jQuery che ha come 20 acquisizioni di eventi che assomigliano a questo

  // used on menu#edit
  $('.show-headers-only-toggle').on('click',function(){
    arc_eh.menu_edit.show_headers_only_toggle.call(this);
  });

che chiama un metodo che fa la funzionalità. Questo è l'unico posto in cui viene chiamato questo metodo. Voglio mettere la funzionalità dopo l'evento in questo modo poiché penso che non ci sia motivo per avere questo altro metodo. L'argomento per averlo in un metodo è che sto inquinando questo spazio e la gestione degli eventi è come un router e questo è un controller. Penso che questo sia il ciclismo e non stiamo usando un framework, quindi è più semplice avere tutto a posto. Chi ti sembra sbagliato in questo? Sento che stanno cambiando questa cosa.

  // used on menu#edit
  $('.show-headers-only-toggle').on('click',function(){
    var action=$(this).attr('arc-action');
    // this would just be what is in the function above
    if(action=='hide-items'){
      $('.menu-item-admin').hide();
      $(this).text('show items');
      $(this).attr('arc-action','show-items');
    }else{
      $(this).text('show headers only');
      $('.menu-item-admin').show();
      $(this).attr('arc-action','hide-items');
    }
  });
    
posta timpone 28.01.2014 - 22:06
fonte

1 risposta

1

Preferisco di gran lunga il primo pezzo di codice. Il fatto che sia usato solo una volta non ha importanza. Il bello dei metodi piccoli è che puoi mostrare le intenzioni del codice senza doverlo leggere. Potresti voler controllare qualcosa come Pulisci codice , i primi capitoli parlano davvero dell'importanza dei metodi ben denominati.

$('.show-headers-only-toggle').on('click',function(){
    arc_eh.menu_edit.show_headers_only_toggle.call(this);
  })

Senza sapere nulla del tuo codice base posso supporre che il seguente metodo alterna le intestazioni di un menu di modifica. Guardando l'altro pezzo di codice non riesco davvero a capire cosa stia facendo senza leggere il codice.

Ci sono anche altri vantaggi. Cosa succede quando si desidera avere quella funzionalità al di fuori di un semplice clic del mouse, ad esempio in un tasto di scelta rapida? Inoltre, come testerai che il metodo funziona? Esistono framework in grado di generare eventi sugli elementi di dom, ma che possono aggiungere una conoscenza extra di dettagli e di eventi ai test.

    
risposta data 28.01.2014 - 23:15
fonte

Leggi altre domande sui tag