Javascript jQuery,将jQuery代码移动到外部文件时出现引用错误
当我在Javascript jQuery,将jQuery代码移动到外部文件时出现引用错误,javascript,jquery,Javascript,Jquery,当我在结束之前通过内联html将其放入时,此函数可以工作。但是一旦我把它移到js/main.js,它就不再工作了 内联: <script> var rowNum = 0; function addRow(frm) { rowNum ++; var html = $('.addphone').html(); jQuery('.phone_adds').append(html); } function remove
结束之前通过内联html将其放入时,此函数可以工作。但是一旦我把它移到js/main.js,它就不再工作了
内联:
<script>
var rowNum = 0;
function addRow(frm) {
rowNum ++;
var html = $('.addphone').html();
jQuery('.phone_adds').append(html);
}
function removeRow(rnum) {
jQuery('#rowNum'+rnum).remove();
}
</script>
错误消息:未捕获引用错误:未定义addRow
帮忙?这里出了什么问题?您正在将函数封装到包装器中:
$(function() {
var rowNum = 0;
function addRow(frm) {
rowNum ++;
var html = $('.addphone').html();
jQuery('.phone_adds').append(html);
}
function removeRow(rnum) {
jQuery('#rowNum'+rnum).remove();
}
});
当您这样做时,您定义的函数实际上是包装器的子函数(“$”函数),因此,当从该包装器外部调用它时,该函数不存在
“内联”之所以有效,是因为您的函数是全局的,并且在任何地方都可见(不在另一个函数内)
我建议删除函数定义的包装,只需将函数调用保留在$()包装中。您如何引用页面中的外部js文件?@KarthikGanesan,在
结束之前使用
,就是这样!非常感谢。推理是正确的;但是我建议删除$(函数(){(第一行)和结束});(最后一行)保持简单。
$(function() {
var rowNum = 0;
function addRow(frm) {
rowNum ++;
var html = $('.addphone').html();
jQuery('.phone_adds').append(html);
}
function removeRow(rnum) {
jQuery('#rowNum'+rnum).remove();
}
});