jQuery,当移动我的jQuery代码到外部文件时,得到一个引用错误

jQuery, getting a reference error when moving my jquery codes to external file

本文关键字:jQuery 一个 错误 引用 文件 移动 我的 代码 外部      更新时间:2023-09-26

当我通过内联html将其放在</body>结束之前时,该函数可以工作。但是一旦我把它移到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>

与外部.js:

$(function() {
.....other functions...
    var rowNum = 0;
    function addRow(frm) {
        rowNum ++;
        var html = $('.addphone').html();
        jQuery('.phone_adds').append(html);
    }
    function removeRow(rnum) {
        jQuery('#rowNum'+rnum).remove();
    }
});

错误信息:Uncaught ReferenceError: addRow is not defined

帮助吗?这里出了什么问题?

将函数封装到包装器中:

$(function() {
    var rowNum = 0;
    function addRow(frm) {
        rowNum ++;
        var html = $('.addphone').html();
        jQuery('.phone_adds').append(html);
    }
    function removeRow(rnum) {
        jQuery('#rowNum'+rnum).remove();
    }
});

当你这样做时,你定义的函数实际上是包装器的子函数("$"函数),所以,当它从包装器外部调用时,函数不存在。

"inline"有效,因为你的函数是全局的,在任何地方都可见(不在另一个函数中)。

我建议删除函数定义的包装器,只将函数调用保留在$()包装器中。