![](/img/trans.png)
[英]Why my Jquery code doesne't work. Am i properly connected to Html?
[英]my jquery code doesnt work. why?
这是我的jquery代码,它不起作用。 我真的不知道为什么。 请帮忙,并告诉我如何解决它。
$(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'
也许你应该看看如何在Javascript中定义一个类:
http://www.phpied.com/3-ways-to-define-a-javascript-class/
var panel = {
init: function () {
alert("Hello!");
}
}
panel.init();
$('.nav li a').on('click', function (e) {
panel.init();
e.preventDefault();
});
我认为你缺少面板函数声明结束时的括号。
var panel = function () {
var panel = function () {
var init = function () {
console.log('hello');
}
};
return {
init: init
}
}();
确保右括号后跟()
您的init函数位于另一个功能面板中。 这是从外面无法到达的。 当你想要返回init方法时,如果你知道我的意思,你必须把init函数放得更高。
我猜这个小组应该使用立即调用:
$(function () {
var panel = (function () {
var init = function () {
console.log('hello');
};
return {
init: init
}
})();
$('.nav li a').on('click', function (e) {
panel.init();
});
})();
代码将以imeediately方式执行并将对象返回到panel
变量。 因此, panel
获得了init
财产。
我会这样做:
$(function () {
var panel = {
init: function () {
console.log('hello');
}
}
$('.nav li a').on('click', function (e) {
panel.init();
});
});
看起来更像你想要做的事情?
在这种情况下,面板是一个回调,这个回调返回另一个回调, init
,所以你必须在两个回调周围put(),试试这个:
$(function () {
var panel = function () {
var init = function () {
console.log('hello');
};
return {
init: init
}
};
$('.nav li a').on('click', function (e) {
panel().init();
});
})();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.