内联 JavaScript 未捕获的引用错误
Uncaught Reference Error with inline javascript
我有以下函数:
if ($(this).find('#sel').length == 0) {
var before = $(this).text();
var title_id = $(this).parent().attr('id');
$(this).html("<select id='sel' onchange='selectdone(this, title_id=title_id)>
...</select>");
}
由此我得到Uncaught ReferenceError: title_id is not defined
.为什么第 4 行内部的 onchange
函数没有拾取我之前定义的变量?我将如何正确重写上述内容?
你是这个意思吗?
$(this).html("<select id='sel' onchange='selectdone(this, "+title_id+");'>...</select>");
在此处使用字符串连接:
$(this).html("<select id='sel' onchange='selectdone(this, title_id=" + title_id +");'>...
发生这种情况是因为您将"change"处理程序定义为字符串的一部分,因此语言不知道其中有代码。
试试这个:
$(this).html($("<select/>", {
id: 'sel',
change: function() { selectdone(this, title_id) }
}));
由于你无论如何都在使用 jQuery,你应该养成通过库而不是使用"onfoo"属性来管理事件处理程序的习惯。
相关文章:
- gmaps4rails 2.4.6未捕获引用错误:未定义Gmaps
- Wordpress中的Javascript出现匿名函数/引用错误
- 使用dc.js、d3.js和crossfilter引用错误
- 未捕获引用错误:未定义validateform
- 为什么我会出现此错误"未捕获引用错误:未定义标题;
- $未定义-未捕获引用错误
- Sitecore”;未捕获引用错误:未定义MultilistWithSearch;
- Wordpress:未捕获引用错误:未定义速度
- Node.js引用错误:未定义类名
- 我该如何解决“;未捕获引用错误:谷歌没有定义"?(谷歌地图API)
- 调用setTimeout内部的函数时发生引用错误
- 未捕获的引用错误:未定义<映射键>
- Javascript错误:未捕获引用错误:未定义编辑
- Google可视化addListener调用函数引用错误
- Cordova:未捕获引用错误:chbrody没有使用SQLitePlugin.js定义PhoneGap
- 未捕获引用错误:未定义PrintThisPage
- 引用错误:在尝试使用ajax发送数据时未定义
- 包含的文件中引发引用错误..除非调用文件包含慢速代码
- 在表单提交按钮的点击事件中调用函数时发生引用错误
- 未捕获引用错误:幻灯片未定义