Mi chiedevo quale dei due metodi sia preferibile o è la linea guida generale che usi $ (elem) .click() per cose semplici e < a onclick = "func (1, 2, 3, 4);" > quando è necessario passare parametri allo script quando si fa clic sull'elemento? Ho cercato di usare solo $ (elem) .click() per mantenere il codice pulito e semplice, ma quando devi passare più di un parametro diventa complicato e la chiamata di funzione su onclick = "" sembra una soluzione migliore .onclick = "func()" o .click()?
risposta
$(elem).click(function() {
func(1,2,3,4);
});
Sembra che quello che vuoi, no?
Preferisco usare $ (elem) .click() per mantenere il mio codice HTML privo di javascript, lo considero più pulito.
Una delle idee principali di jQuery è javascript non invadente (ad esempio HTML e JavaScript sono due grandi gusti che non hanno un buon sapore insieme). L'uso dell'oggetto jQuery e dei selettori per collegare le funzioni è ciò che preferirebbe fare.
Se i parametri potrebbero essere determinati al momento del clic, vorrei suggerire il metodo di rilegatura:
$('a').click(function(){ someFunc(this.val, 2, 3, 4); })
Un caso ho potuto pensare di farlo in linea, è che se si sta costruendo multipla collegamenti in un ciclo in cui params 1, 2, 3 o 4 sono diverse in base a una variabile di back-end o qualcosa:
<% for(int i = 0; i < 4; i++) { %>
<a onclick="someFunc(1,<%= i %>,3,4"></a>
<% } %>
Personalmente, cerco sempre di legarsi alla manifestazione in un $ (document) .ready() richiama.
Spero che questo aiuti
È possibile passare parametri a una funzione quando si utilizza jQuery:
$(".selector").click(function() { func(1,"2", someVar); });
preferisco usare sempre jQuery per la gestione mio evento. Non mi piace mettere alcun comportamento nel mio codice HTML, anche con onclick
e eventi correlati.
Inoltre, se si fa clic programmaticamente su qualcosa utilizzando $(".selector").click()
e si dispone di un gestore collegato utilizzando sia onclick
e jQuery, chiamerà prima il gestore jQuery, quindi il gestore impostato utilizzando l'attributo. Ma se fai clic con il mouse, è il contrario. Potrebbe essere inaspettato e finire per dare grattacapi in fondo alla strada.
mi piacerebbe andare con il click()
pure, se si dispone di ulteriori parametri che si desidera passare alla funzione, aggiungerli a qualsiasi degli attributi dell'oggetto, io di solito uso rel
come questo:
<a href="#" class="link" rel="parameter1, parameter2, etc">Link</a>
nello script si può fare questo:
$('.link').click(function() {
var parameters = $(this).attr('rel').split(',');
// Do something
return false;
})
- 1. onclick = "javascript: func()" vs. onclick = "func()"
- 2. Passando parametro utilizzando onclick o un click vincolante con KnockoutJS
- 3. jQuery click function vs onclick in linea
- 4. è una cattiva pratica usare href = 'javascript: func()' di onclick = 'func()' per gli ancoraggi?
- 5. Jquery o javascript auto click
- 6. Ionic che è più veloce ng-click o on-tap
- 7. in c: func (void) vs. func()
- 8. rileva click all'interno iframe
- 9. ordine di eventi onclick
- 10. Disabilitazione dell'evento On-click
- 11. Func <T>() vs Func <T> .Invoke()
- 12. jQuery salta o scorri verso una determinata posizione, div o target sulla pagina dal pulsante onclick
- 13. jQuery sovrascrivere evento .Click entro click
- 14. concatenare due Func delegati
- 15. Func <TObject, bool> o Predicate <TObject>?
- 16. Posso usare i parametri in Action o Func delegate?
- 17. chiamata onclick attribuire programmazione
- 18. React onClick evento
- 19. OnClick senza jQuery
- 20. jQuery .on ('click') vs. .click() e .delegate ('click')
- 21. Func Delegate vs Function
- 22. Devo inserire una virgola (;) quando uso onclick = ""
- 23. In jQuery, $ (func) è equivalente a $ (document) .ready (func)?
- 24. RIght-Click in GWT?
- 25. jquery modal dialog onclick?
- 26. html div evento onclick
- 27. jQuery onclick errore di registrazione
- 28. Ricorsione con Func
- 29. Spiegazione di Func
- 30. Convertire Func delegare
Ma se i parametri passati alla funzione sono unici per ogni elemento e si può avere centinaia di questi elementi, diventa più difficile da fare in questo modo, ecco perché ho Stavo chiedendo se in quei casi dovresti noi e il metodo onclick = "func (1, 2, 3, 4)" o dovresti rimanere con $ (elem) .click(). Ovviamente potresti inserire tutti quei parametri nella stringa di query url come foo = 1 & bar = 2 e metterlo in href = "" e in $ (elem) .click() usare $ (this) .href() per ottenere i valori , ma è più efficiente semplicemente fare onclick = "func()"? – TheMagician
bene allora dovresti usare gli attributi dei dati html5 per impostare valori univoci associati a ciascun elemento rilevante: 'link' – geowa4
Se hai centinaia di questi elementi il modo più efficiente è usare [la delega degli eventi] [http: //www.danwebb. net/2008/2/8/event-delegation-made-easy-in-jquery] al posto dei singoli gestori onclick per ogni elemento. Per mantenere il JS meno mescolato con il tuo HTML, puoi memorizzare i parametri necessari in una struttura di dati Javascript, con le chiavi per ciascun oggetto che è l'ID dell'elemento o simile. –