javascript中未定义错误函数
我有一个示例代码:javascript中未定义错误函数,javascript,Javascript,我有一个示例代码: <input width="50" type="text" value="" name="application_id" id="text_input"> <a href="#" onclick="addSelect('1', 'Test Name');" title="Click to add this item">Test Name</a> 当我运行代码时,结果错误是addSelect未定义,如何适应它?您的脚本已定义为运行onLoa
<input width="50" type="text" value="" name="application_id" id="text_input">
<a href="#" onclick="addSelect('1', 'Test Name');" title="Click to add this item">Test Name</a>
当我运行代码时,结果错误是
addSelect未定义
,如何适应它?您的脚本已定义为运行onLoad
,这意味着您的函数在全局范围内无法像您预期的那样使用。它将在一些onLoad
方法的局部范围内定义(以JSFIDLE使用的为准)。有了这个设置,我认为JSFIDLE将您的代码放入这个或类似的中:
window.onload = function () {
// Your code
};
(类似于onDomReady
选项)
这样您就不必担心绑定正确的事件,只需测试脚本(确保页面已加载)
当您尝试调用函数时(您希望该函数在全局范围内),它将不起作用。只需将左侧的设置更改为不包裹(头部)
(或不包裹(身体)
)
正如mplungjan所指出的,我不知何故根本没有意识到,当使用锚元素的onclick
时,您可能希望防止链接的默认行为(即使只是转到“#”),可以通过几种方式实现,但有一种是:
<a href="#" onclick="runFunction();return false;">Text</a>
尽管同时,有人可能会争辩说,您根本不应该使用内联处理程序,而是希望使用Javascript完全绑定事件。根据具体情况,您可以选择阻止默认行为。在任何情况下,您仍然可以抓取
事件
对象的一部分(根据浏览器进行规范化…顺便说一句,jQuery就是这样做的),并调用事件.preventDefault()方法中的code>。您的脚本已定义为运行onLoad
,这意味着您的函数在全局范围内不可用。它将在一些onLoad
方法的局部范围内定义(以JSFIDLE使用的为准)。有了这个设置,我认为JSFIDLE将您的代码放入这个或类似的中:
window.onload = function () {
// Your code
};
(类似于onDomReady
选项)
这样您就不必担心绑定正确的事件,只需测试脚本(确保页面已加载)
当您尝试调用函数时(您希望该函数在全局范围内),它将不起作用。只需将左侧的设置更改为不包裹(头部)
(或不包裹(身体)
)
正如mplungjan所指出的,我不知何故根本没有意识到,当使用锚元素的onclick
时,您可能希望防止链接的默认行为(即使只是转到“#”),可以通过几种方式实现,但有一种是:
<a href="#" onclick="runFunction();return false;">Text</a>
尽管同时,有人可能会争辩说,您根本不应该使用内联处理程序,而是希望使用Javascript完全绑定事件。根据具体情况,您可以选择阻止默认行为。在任何情况下,您仍然可以抓取事件
对象的一部分(根据浏览器进行规范化…顺便说一句,jQuery就是这样做的),并调用事件.preventDefault()编码>在方法中。这里是它的
我在左侧的选择框中将onload
更改为head
我在左侧的选择框中将onload
更改为head
@Nemoden,如果我将其更改为无包裹(正文),请更改为onclick,这与您对我的操作相同=“return addSelect….
和addreturn false代码>到函数的末尾-我也从mootools@Nemoden和你一样,如果我把它改成无包装(主体),请改成onclick,对我来说效果很好=“return addSelect….
和addreturn false
到你函数的末尾-我也从MooTools改为纯JS当addSelect
名称查找实际执行时?@Kos在链接上点击?你是什么意思?什么时候实际执行addSelect
名称查找?@Kos单击链接?什么意思?