Próbuję użyć funkcji jQuery na właściwość mojego obiektu js, ale daje mi błąd "Uncaught TypeError: Cannot read property "jquery" of undefined"
. Oto przykładowy kod:
var foo = {
bar: $("#element"),
baz: this.bar.find("#childelement"), // <- jQuery .find() not working
hideBaz: function() {
this.baz.hide();
}
}
Nie bardzo jestem pewien, co tu robić, każda pomoc byłaby świetna
Odpowiedzi:
1 dla odpowiedzi № 1Aby użyć jQuery, musisz użyć przestrzeni nazw udostępnianej przez jQuery. tj. - jQuery lub $, które są podane z jQuery. Możesz również utworzyć własną przestrzeń nazw za pomocą jQuery.noConflict ().
Jeśli użyjesz ich, to tylko jQuery będzie wiedzieć, że próbujesz uzyskać dostęp do swoich metod z ich obiektami. Coś takiego jak $ (this) lub $ ("yourselector").
Dzięki powyższym możesz użyć
var foo = {
bar: $("#selector"),
baz: $(this).bar.find("#childSelector"),
hideBaz: function() {
this.baz.hide();
}
}
Mam nadzieję, że to pomoże.
Happy Learning :)
2 dla odpowiedzi nr 2
Aby włączyć funkcje jquery, musisz użyć $(this)
raczej niż po prostu this
. Bez używania $(this)
, nie będziesz mógł użyć żadnego jquery na tym obiekcie.
2 dla odpowiedzi nr 3
powinieneś zawinąć this
w jquery:
var foo = {
bar: $("#element"),
baz: $(this).bar.find("#childelement"),
hideBaz: function() {
this.baz.hide();
}
}