2009-08-13 12 views
9

Czy mogę używać JQuery w ramach funkcji onClick?Używanie JQuery wewnątrz onClick

Na przykład:

<a onclick="my_save_function($("#inputID").val())">
<input type=hidden id="inputID" value="foo">

Taki, który po kliknięciu, znacznik kotwica przebiega następująco:

my_save_function(foo);

Po kilku wyszukiwań, nie mogłem znaleźć podobny temat. Dziękuję za pomoc.

+0

Dziękuję bardzo za szybkie odpowiedzi. Nigdy nie przestaje mnie zaskakiwać społeczność SO. –

Odpowiedz

16

Pewnie. jQuery nie istnieje w żadnym specjalnym wszechświecie; to tylko zbiór funkcji JavaScript, które mogą okazać się (wyjątkowo) użyteczne.

Jednak, jeśli mimo wszystko korzystasz z jQuery, dlaczego nie chcesz poprawnie dołączyć zdarzenia onclick z poziomu jQuery? że po prostu trzeba zrobić:

$(document).ready(function() { 
    $("#id-for-that-link").click(function() { 
     my_save_function($("#inputID").val()); 
    }); 
}); 
+0

Nie zawsze jest możliwe (lub praktyczne), jeśli na przykład używa się wtrysku html. – Karlth

+0

Jeśli wstrzykujesz nowy kod HTML, możesz nadal dołączać do niego własne procedury obsługi, gdy tylko będzie to część DOM. Czas (tzn. Kolejność w kodzie) może być trochę inny, ale podstawy dołączania obsługi zdarzeń nie są różne. – VoteyDisciple

+0

Dołączanie modułów obsługi podczas dołączania do systemu DOS nie zawsze jest możliwe. Zależy od struktury projektu, jeśli na przykład kontrolujesz tylko tworzenie HTML, a nie kodu, gdy jest on wstrzykiwany. – Karlth

3

spróbuj tego (musisz id w znaczniku kotwicy):

<a onclick="my_save_function(this.id);"> 

iw swoim javascript:

function my_save_function(elid){ 
    v = $("#"+elid).val(); 
    // do stuff with v 
} 
0

Rzetelnie , już napisałeś kod i znaczniki, czy nie mógłbyś po prostu uruchomić go i sprawdzić, czy zadziałało?

W odpowiedzi na twoje pytanie, tak, powinno to działać poprawnie, ale obserwuj zagnieżdżone cytaty. Byłaby lepsza forma i łatwiejszy do odczytania/utrzymania, jeśli dodasz element obsługi kliknięcia do elementu, niż osadzisz treść funkcji w ciągu atrybutów.

+0

Próbowałem tego. Dostaję jednak błąd składniowy w FireBug w następujący sposób: błąd składni my_save_function ($ (Więc nie byłem pewien, czy JQuery jest nawet użyteczny w ramach funkcji, dlatego zapytałem: –

+0

Tak, myślę, że cytaty to robiły .. musisz użyć pojedynczych cudzysłowów na wewnętrznym zestawie lub uciec z dodatkowych podwójnych cudzysłowów – flatline

+0

Tak, to okazało się być problemem. –

Powiązane problemy