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()

您的脚本已定义为运行
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….
和add
return false到函数的末尾-我也从mootools@Nemoden和你一样,如果我把它改成无包装(主体),请改成
onclick,对我来说效果很好=“return addSelect….
和add
return false
到你函数的末尾-我也从MooTools改为纯JS当
addSelect
名称查找实际执行时?@Kos在链接上点击?你是什么意思?什么时候实际执行
addSelect
名称查找?@Kos单击链接?什么意思?