Javascript ReferenceError:使用onclick时未定义函数
我使用javascript设置了一个锚定标记,以便Javascript ReferenceError:使用onclick时未定义函数,javascript,jquery,Javascript,Jquery,我使用javascript设置了一个锚定标记,以便onclick,调用函数showSavingsEasterEgg,并传递一个值。我遇到的问题是,我没有正确引用我的函数: ReferenceError:showSavingsEasterEgg未定义 我尝试将showSavingsEasterEgg函数移动到showData函数中,以查看它是否解决了范围问题,但没有 有什么建议吗 define(["jquery", "go/util", "underscore", "jqueryui/slider
onclick
,调用函数showSavingsEasterEgg
,并传递一个值。我遇到的问题是,我没有正确引用我的函数:
ReferenceError:showSavingsEasterEgg未定义
我尝试将showSavingsEasterEgg
函数移动到showData
函数中,以查看它是否解决了范围问题,但没有
有什么建议吗
define(["jquery", "go/util", "underscore", "jqueryui/slider"], function ($, util,_) {
function showData(data) {
$('#item').append('<a class="savings_link" href="#" onclick=\'showSavingsEasterEgg('+data[key]['saving']+')\'> Savings');
}
function showSavingsEasterEgg(data){
console.log("SUccess");
console.log(data);
}
});
define([“jquery”、“go/util”、“下划线”、“jqueryui/slider”]、函数($、util、389;){
函数showData(数据){
$('项目')。追加('节省');
}
功能显示保存Seasteregg(数据){
控制台日志(“成功”);
控制台日志(数据);
}
});
将showSavingsEasterEgg
的定义直接放在全局范围内
在这里,找不到它
您可以这样做:
window.showSavingsEasterEgg = function (data){
console.log("SUccess");
console.log(data);
};
define(["jquery", "go/util", "underscore", "jqueryui/slider"], function ($, util,_) {
function showData(data) {
$('#item').append('<a class="savings_link" href="#" onclick=\'showSavingsEasterEgg('+data[key]['saving']+')\'> Savings');
}
});
window.showSavingsEasterEgg=函数(数据){
控制台日志(“成功”);
控制台日志(数据);
};
定义([“jquery”、“go/util”、“下划线”、“jqueryui/slider”]、函数($、util、3;){
函数showData(数据){
$('项目')。追加('节省');
}
});
您应该知道并理解任何编程语言中范围的定义。请将名为“showSavingsEasterEgg”的函数移出父函数的一侧,它将像一个符咒一样工作。这是因为您将其定义为父函数的私有成员
干杯让show saving Seasteregg全球化。您只能从html代码中调用全局可访问的对象/引用
window.showSavingsEasterEgg = function(data){
console.log("SUccess");
console.log(data);
}
想知道为什么到目前为止没有人提出最明显、方便和“最佳实践”的方法。您根本不应该使用内联事件处理,而是要低调地进行
$('#item').append($('<a>', {
'class': 'savings_link',
href: '#',
click: function(e) {
console.log("SUccess");
console.log(data);
}
}});
$('#项')。附加($(''){
“类”:“储蓄链接”,
href:“#”,
点击:功能(e){
控制台日志(“成功”);
控制台日志(数据);
}
}});
btwReferenceError:define没有定义
你知道这里的define()是什么吗?@eicto没有,但这不是问题:“showSavingsEasterEgg没有定义”。我想使用onClick,因为我有几个具有相同ID的锚定标记,如果我用事件侦听器单击其中一个,我的函数会被多次调用。