Я пытаюсь написать простой плагин jQuery, и мне нужен некоторый код для работы как при изменении нагрузки, так и в окне, поэтому я написал функцию внутри плагина.Использование «this» внутри именованной функции в плагине jQuery
JQuery (документ) .ready (функция ($) {
(function($) {
$.fn.responsiveNav = function() {
function enable_responsive_nav() {
if(this.hasClass('class')) {
//do stuff
}
}
$(window).resize(function(e) {
enable_responsive_nav();
});
enable_responsive_nav();
return this;
};
}(jQuery));
$('nav').responsiveNav();
Проблема в том, «это», кажется, не признается в функции Я попытался передать его в качестве аргумента функции:.
enable_responsive_nav(this)
... но потом я получаю сообщение об ошибке на консоли, говоря hasClass() 'не является функцией.
Я предполагаю, что я мог бы сделать это без функции и затем связать окно изменения размера событие вне плагин, но я пытаюсь сохранить это для одного вызова, и я уверен, что то, что мне не хватает, очень просто.
ли enable_responsive_nav.bind (это)() работать? – eXecute
Когда вы добавили 'enable_responsive_nav (это)' Вы также добавили что-то вроде этого: 'function enable_responsive_nav (el)', а затем вызывается 'if (el.hasClass ('class')) {' – Leeish