Я намагаюся використовувати функцію jQuery у властивості мого об'єкта js, але це дає мені помилку "Uncaught TypeError: Cannot read property "jquery" of undefined"
. Ось приклад коду:
var foo = {
bar: $("#element"),
baz: this.bar.find("#childelement"), // <- jQuery .find() not working
hideBaz: function() {
this.baz.hide();
}
}
Не дуже впевнений, що тут робити, будь-яка допомога була б чудовою
Відповіді:
1 для відповіді № 1Для використання jQuery потрібно використовувати простір імен, наданий jQuery. тобто - або jQuery, або $, які надаються з jQuery. Ви також можете створити власний простір імен, використовуючи jQuery.noConflict ().
Якщо ви використовуєте їх, то лише jQuery дізнається, що ви намагаєтеся отримати доступ до його методів своїми об'єктами. Щось на зразок $ (це) або $ ("ваш вибір").
Тож із вищезазначеним можна використовувати
var foo = {
bar: $("#selector"),
baz: $(this).bar.find("#childSelector"),
hideBaz: function() {
this.baz.hide();
}
}
Сподіваюсь, це допоможе.
Щасливе навчання :)
2 для відповіді № 2
Щоб увімкнути функціонал jquery, ви повинні використовувати $(this)
а не просто this
. Без використання $(this)
, ви не зможете використовувати жоден jquery на цьому об'єкті.
2 для відповіді № 3
вам слід загорнути this
у jquery:
var foo = {
bar: $("#element"),
baz: $(this).bar.find("#childelement"),
hideBaz: function() {
this.baz.hide();
}
}