Ich habe mich gefragt, welche die oben genannten Methoden bevorzugt oder ist die allgemeine Richtlinie, die Sie $ (Elem) .click() für einfache Dinge verwenden und < ein Onclick = „func (1, 2, 3, 4);“ > Wenn Sie beim Klicken auf das Element Parameter an das Skript übergeben müssen? Ich habe versucht, nur $ (elem) .click() zu verwenden, um den Code sauber und einfach zu halten, aber wenn Sie mehr als einen Parameter übergeben müssen, wird es schwierig und Funktionsaufruf onclick = "" scheint eine bessere Lösung .onclick = "func()" oder .click()?
Antwort
$(elem).click(function() {
func(1,2,3,4);
});
Das scheint wie, was Sie wollen, nicht?
Ich ziehe es $ (Elem) .click() verwenden, um meine HTML Javascript-frei zu halten, halte ich es sauberer.
Eine der wichtigsten Ideen hinter jQuery ist unaufdringliche Javascript (das heißt HTML und JavaScript sind zwei große Geschmacksrichtungen, die zusammen nicht gut schmecken). Verwenden Sie das jQuery-Objekt und die Selektoren, um die Funktionen anzuhängen, was sie bevorzugen würden.
Wenn die Parameter im Moment des Klicks bestimmt werden können, würde ich vorschlagen die Bindungsmethode:
$('a').click(function(){ someFunc(this.val, 2, 3, 4); })
Ein Fall ich es inline zu tun denken konnte, ist, wenn Sie bauen mehr Links in einer Schleife, wobei 1 params, 2, 3 oder 4 sind, die je nach einem Backend-Variable oder etwas:
<% for(int i = 0; i < 4; i++) { %>
<a onclick="someFunc(1,<%= i %>,3,4"></a>
<% } %>
ich persönlich immer versuchen, in einem $ (Dokument) .ready auf das Ereignis zu binden() Rückrufen.
this helps
Sie Parameter an eine Funktion übergeben können, wenn Sie jQuery verwenden:
$(".selector").click(function() { func(1,"2", someVar); });
Ich habe immer lieber jQuery verwenden für meine Event-Handling. Ich mag es nicht, Verhalten in meinen HTML-Code zu schreiben, auch nicht mit onclick
und verwandten Ereignissen.
Wenn Sie programmgesteuert auf etwas unter Verwendung von $(".selector").click()
klicken und ein Handler sowohl mit onclick
als auch mit jQuery verbunden ist, wird zuerst der jQuery-Handler und dann der Handler mit dem Attribut aufgerufen. Aber wenn Sie mit der Maus klicken, ist es umgekehrt. Das könnte unerwartet sein und dir am Ende Kopfschmerzen bereiten.
ich mit dem click()
auch gehen würde, wenn Sie zusätzliche Parameter, die Sie an die Funktion übergeben möchten, fügen Sie sie zu einem der Attribute des Objekts, ich rel
in der Regel wie folgt verwenden:
<a href="#" class="link" rel="parameter1, parameter2, etc">Link</a>
im Skript können Sie dies tun:
$('.link').click(function() {
var parameters = $(this).attr('rel').split(',');
// Do something
return false;
})
- 1. web - button.onclick = func(); vs <Schaltfläche onclick = "func()"?
- 2. Link mit onclick und _dopostback und jquery click event
- 3. Kann ich ng-click und onclick zusammen verwenden
- 4. LinkButton OnClick Download oder Löschen
- 5. Ionic, das schneller ist ng-click oder on-tap
- 6. in c: func (void) vs. func()
- 7. gibt es eine Verwendung für & func oder class :: func in C++?
- 8. Div erscheint onclick, verschwinden onclick
- 9. Geordnetes Element Click-Ereignis auslösen das übergeordnete Click-Ereignis
- 10. Func <T>() vs Func <T>. Invoke()
- 11. Hack C, Call Scripting Func anstelle von C Func?
- 12. Javascript funktioniert nicht onblur oder onclick
- 13. Kontrollkästchen OnClick/ItemCommand in Repeater oder DataList
- 14. Concatenate zwei Func Delegierten
- 15. Was ist 'click()' in JavaScript
- 16. Func/Action Delegaten mit Referenzargumente/Parameter oder anonyme Funktionen
- 17. Kann ich Params in Action- oder Func-Delegaten verwenden?
- 18. Func <TObject, bool> oder Prädikat <TObject>?
- 19. Verwenden von Action oder Func wie Ereignisse - schlechte Praxis?
- 20. Verwenden Aktion statt Func
- 21. So rufen Sie eine Funktion vom Kontrollkästchen onclick oder onchange
- 22. One Click auf .click (function() funktioniert nicht in Ajax
- 23. Func Delegat vs Funktion
- 24. jquery unbind click
- 25. Deaktivierung des On-Click-Ereignisses
- 26. Was ist der Unterschied zwischen on ("click", function()) und onclick = "function();"? So
- 27. jquery - plugin bubble click event
- 28. Halten Sie Informationen in Vektor von Func zu Func
- 29. Und Unterschied zwischen FirstOrDefault (func) und Where (func) .FirstOrDefault()?
- 30. In jQuery, entspricht $ (func) $ (document) .ready (func)? Ist
Aber wenn die übergebenen Parameter an die Funktion auf jedes Element einzigartig sind und Sie Hunderte dieser Elemente haben kann, wird es schwieriger, es so zu tun, damit, warum ich ist Ich habe gefragt, ob Sie in diesen Fällen uns sollten e die onclick = "func (1, 2, 3, 4)" Methode oder sollten Sie mit $ (elem) .click() bleiben. Sie könnten natürlich alle diese Parameter in URL-Abfrage-String wie foo = 1 & bar = 2 und setzen Sie das in href = "" und in der $ (elem) .click() verwenden Sie $ (this) .href(), um die Werte zu erhalten Aber ist es effizienter, einfach onclick = "func()" zu machen? – TheMagician
Nun sollten Sie die html5-Datenattribute verwenden, um eindeutige Werte für jedes relevante Element festzulegen: 'link' – geowa4
Wenn Sie Hunderte dieser Elemente verwenden, verwenden Sie am besten [Ereignisdelegation] [http: //www.danwebb. net/2008/2/8/Event-Delegation-made-easy-in-jquery] anstelle einzelner Onclick-Handler für jedes Element. Um den JS weniger mit Ihrem HTML zu mischen, könnten Sie die benötigten Parameter in einer JavaScript-Datenstruktur speichern, wobei die Schlüssel für jedes Objekt die Element-ID oder ähnliches sind. –