为什么我的应用程序告诉我我的方法未定义?
我有这个链接:
<%= link_to_function "remove", "remove_fields(this)"%>
它输出这个html:
<a href="#" onclick="remove_fields(this); return false;">remove</a>
并且我有这个JQuery函数:
function remove_fields(link){
$(link).prev("input[type=hidden]").val("1");
$(link).closest(".fields").hide();
}
但是当我单击该链接时,我收到此错误:
Uncaught ReferenceError: remove_fields is not defined
为什么会这样以及如何修复它?
I have this link:
<%= link_to_function "remove", "remove_fields(this)"%>
which outputs this html:
<a href="#" onclick="remove_fields(this); return false;">remove</a>
and I have this JQuery function:
function remove_fields(link){
$(link).prev("input[type=hidden]").val("1");
$(link).closest(".fields").hide();
}
but when I click on the link, I get this error:
Uncaught ReferenceError: remove_fields is not defined
Why is this and how do I fix it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您的函数声明如下:
那么它仅在 jQuery(function () { }) 函数内部的范围内,从外部不可见。解决此问题的两种方法:
声明一个全局可访问的变量并使其像往常一样成为一个函数。
更好的是:
在 jQuery 范围内以编程方式附加单击处理程序。
If you have your function declaration like this:
then it's only in scope inside the
jQuery(function () { })
function and not visible from outside. Two methods of resolving this:Declares a globally accessible variable and makes it a function as usual.
Better though:
Attach the click handler programmatically from within your jQuery scope.
您不应该使用
onclick
属性,这是一种不好的做法,而且是 90 年代的事情。相反,您应该为锚点添加一个类,并使用 jQuery 将处理程序绑定到单击事件。HTML
JavaScript
You should not use the
onclick
attribute, it's a bad practice and something that belongs back in the 90s. Instead you should add a class for your anchors and bind a handler to the click event with jQuery.HTML
JavaScript
可能很明显,但是 javascript 是否链接在 html 源代码的 head 中?
May be obvious, but is the javascript linked in the head in the source of the html?