未捕获的ReferenceError:addFriend未定义

Uncaught ReferenceError: addFriend is not defined

本文关键字:addFriend 未定义 ReferenceError      更新时间:2024-05-29

当通过html onClick调用调用时,我无法使javascript函数工作。呼叫代码为

<tr data-name="buttons" style="border-top: #FFF 1px Solid;margin-top:10px">
                <td colspan="2"><a onClick="addFriend()" class="button"><?php echo $addFriend ?></a></td>
            </tr>

代码下面的功能是

<script type="text/javascript">
    var emailFriend = 1;
    function addFriend(){
        var html  = '<tr id="friend' + emailFriend + '">';
            html += '   <td><?php echo $friendEmail ?></td>';
            html += '   <td>';
            html += '       <input type="text" name="emailFriend[' + emailFriend + ']" data-name="emailFriend" size="60" />';
            html += '       <a onClick="$(''#friend' + emailFriend + ''').remove()" class="emailRemove"></a>';
            html += '   </td>';
            html += '</tr>'
        $('tr[data-name="buttons"]').before(html);
        emailFriend++;
    }</script>

但是,单击该按钮时,不会采取任何操作。Google Chrome控制台显示Uncaught ReferenceError:addFriend未定义。

我想要么是语法错误,要么是完全遗漏了什么。有什么想法吗?

我的猜测是,在脚本解析addFriend函数之前,脚本中出现了一个错误,这就是为什么没有定义它。通过注释掉除此函数之外的所有内容来测试它,看看它是否有效。然后开始添加碎片,直到崩溃。当它发生时,你就会知道真正的问题在哪里。

尝试将脚本块移动到<head>部分,这样就可以确保在用户单击按钮之前加载此脚本。

使用一个工具,例如firebug,并在控制台中键入addFriend而不是addFriend()。然后你们会看到这个函数的类型。您也可以调用addFriend的类型。您应该将函数视为输出。最好是注释掉函数定义中的所有行,因为错误的顺序或错误的配对可能会导致js引擎出现问题。