Javascript 为什么我的应用程序告诉我我的方法未定义?
我有这个链接:Javascript 为什么我的应用程序告诉我我的方法未定义?,javascript,jquery,html,debugging,Javascript,Jquery,Html,Debugging,我有这个链接: <%= link_to_function "remove", "remove_fields(this)"%> 但是当我点击链接时,我得到了这个错误: Uncaught ReferenceError: remove_fields is not defined 这是为什么?我如何修复它?可能很明显,但是javascript链接在html源代码的头部吗?可能很明显,但是javascript链接在html源代码的头部吗?如果您有这样的函数声明: jQuery(functi
<%= link_to_function "remove", "remove_fields(this)"%>
但是当我点击链接时,我得到了这个错误:
Uncaught ReferenceError: remove_fields is not defined
这是为什么?我如何修复它?可能很明显,但是javascript链接在html源代码的头部吗?可能很明显,但是javascript链接在html源代码的头部吗?如果您有这样的函数声明:
jQuery(function ($) {
function remove_fields ...
});
然后它只在jQuery(function(){})
函数的范围内,从外部看不到。解决此问题的两种方法:
var remove_fields;
jQuery(function ($) {
remove_fields = function () { ... }
});
声明一个全局可访问的变量,并使其像往常一样成为函数
但更好的是:
jQuery(function ($) {
function remove_fields ...
$('a.some-class').click(remove_fields);
});
从jQuery范围内以编程方式附加click处理程序。如果您的函数声明如下:
jQuery(function ($) {
function remove_fields ...
});
然后它只在jQuery(function(){})
函数的范围内,从外部看不到。解决此问题的两种方法:
var remove_fields;
jQuery(function ($) {
remove_fields = function () { ... }
});
声明一个全局可访问的变量,并使其像往常一样成为函数
但更好的是:
jQuery(function ($) {
function remove_fields ...
$('a.some-class').click(remove_fields);
});
从jQuery范围内以编程方式附加单击处理程序。您不应该使用
onclick
属性,这是一种糟糕的做法,早在90年代就已经存在了。相反,您应该为锚点添加一个类,并使用jQuery将处理程序绑定到click事件
HTML
<a class="remove-fields" href="#">remove</a>
您不应该使用
onclick
属性,这是一种不好的做法,应该追溯到90年代。相反,您应该为锚点添加一个类,并使用jQuery将处理程序绑定到click事件
HTML
<a class="remove-fields" href="#">remove</a>
您的函数在何处以及如何定义?它是否在jqueryready语句下?尝试将其从那里移动到公共范围它位于就绪语句下。。。如何将其移动到公共作用域?只需将其移动到
$(document).ready()函数的外部即可。此外,考虑避免使用<代码> OnCase< /Cord>,并使用JS DeCTLLI登记点击事件。建议不要将jQuery与RJS混合,除非您使用jQuery UJS。rjs通常依赖于prototype,可能存在一些冲突,可能会破坏您的代码。您的函数在哪里以及如何定义?是否在jQueryReady语句下?尝试将其从那里移动到公共范围它位于就绪语句下。。。如何将其移动到公共作用域?只需将其移动到$(document).ready()函数的外部即可。此外,考虑避免使用<代码> OnCase< /Cord>,并使用JS DeCTLLI登记点击事件。建议不要将jQuery与RJS混合,除非您使用jQuery UJS。rjs通常依赖于原型,可能会有一些冲突破坏您的代码