Я использую RequireJS с jQuery. У меня есть page
модуля, которая включает функцию, которая переключает видимость меню на сайте. Я вызываю эту функцию переключения, вызывая page.toggleMenu
вне модуля или this.toggleMenu
внутри модуля.
У меня проблема/вопрос: могу ли я получить доступ к этому модулю внутри функции jQuery, вызванной внутри того же модуля, например:
var someFunction = function() {
$('.someelement').on('click',function() {
this.toggleMenu();
});
}
До сих пор я не мог этого сделать. Вывод this
переменной содержит элемент DOM для.someelement. Я предполагаю, что это связано с тем, что область jQuery - это только DOM. Но я не уверен, что здесь происходит. Я также удивлен, что this
переменная является ссылкой на элемент DOM. Я думал, что единственный способ добиться этого - сделать var this = $(this)
.
Было бы очень полезно, если бы кто-то помог мне разъяснить, что здесь происходит, и какие (если есть) варианты, которые у меня есть для потенциального обходного пути. Наконец, является ли это причиной того, что можно использовать MooTools вместо jQuery?
В верхней части вашего модуля (или в какой-либо области, где вы используете this.someFunction
), поставьте:
var page = this;
... и затем используйте page.someFunction
а не this.someFunction
.
page
? Прямо сейчас мы должны угадать.