Javascript 我的jquery代码不起作用。为什么?
这是我的jquery代码,它不起作用。我真的不知道为什么。请帮助我,并告诉我如何修复它Javascript 我的jquery代码不起作用。为什么?,javascript,jquery,function,object,Javascript,Jquery,Function,Object,这是我的jquery代码,它不起作用。我真的不知道为什么。请帮助我,并告诉我如何修复它 $(function () { var panel = function () { var init = function () { console.log('hello'); }; return { init: init } }; $('.nav
$(function () {
var panel = function () {
var init = function () {
console.log('hello');
};
return {
init: init
}
};
$('.nav li a').on('click', function (e) {
panel.init();
});
})();
我在控制台中收到此错误
Object function () {
var panel = function () {
var init = function () {
console.log('hello');
}
};
return {
init: init
}
} has no method 'init'
我认为您缺少了面板函数声明末尾的括号
var panel = function () {
var panel = function () {
var init = function () {
console.log('hello');
}
};
return {
init: init
}
}();
确保右括号后面紧跟着
()
您的init函数位于另一个功能面板中。这是无法从外部访问的。
当您想要返回init方法时,如果您知道我的意思,那么您必须将init函数提高一个级别。也许您应该看看如何在Javascript中定义类:
我猜面板应该使用即时调用:
$(function () {
var panel = (function () {
var init = function () {
console.log('hello');
};
return {
init: init
}
})();
$('.nav li a').on('click', function (e) {
panel.init();
});
})();
代码将立即执行,并将对象返回到面板
变量。因此,面板
拾取一个init
属性。我只需执行以下操作:
$(function () {
var panel = {
init: function () {
console.log('hello');
}
}
$('.nav li a').on('click', function (e) {
panel.init();
});
});
似乎更像是您正在尝试执行的操作?在本例中,面板是一个回调,而此回调返回另一个回调,
init
,因此您必须将()放在两个回调周围,尝试以下操作:
$(function () {
var panel = function () {
var init = function () {
console.log('hello');
};
return {
init: init
}
};
$('.nav li a').on('click', function (e) {
panel().init();
});
})();
你的html是什么样子的?您会遇到什么错误?为什么有两个同名函数?“panel”
init
是panel.panel
的成员,但不是panel
的成员。是的,这是我的错误,现在我修复了代码,但仍然是相同的错误。
$(function () {
var panel = {
init: function () {
console.log('hello');
}
}
$('.nav li a').on('click', function (e) {
panel.init();
});
});
$(function () {
var panel = function () {
var init = function () {
console.log('hello');
};
return {
init: init
}
};
$('.nav li a').on('click', function (e) {
panel().init();
});
})();