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