当前位置: 首页 > 面试题库 >

jQuery onclick函数未定义

刁冠宇
2023-03-14
问题内容

我有一个ajax脚本,我想从一个函数发布。我正在使用onlick
href,但是它没有显示为undefined。这是使用WordPress的。我试图在范围内和范围外移动代码,但是我似乎仍然无法正常工作。

    <div id="live">
    <div class="container">
        <?php the_content(); ?>
        <div id="comment-display">
            <form method="post" action="index.php" id="comments_submit">
                <input type="hidden" id="nameBox" value="<?php echo $_SESSION['name'] ?>" name="name"/>
                <input type="hidden" id="emailBox" name="email" value="<?php echo $_SESSION['email']; ?>"/>
                <textarea id="chatBox" placeholder="Ask a question or make a comment" name="comment" class="form-control"></textarea>
                <a href="javascript:submitComment();" type="submit" id="submit" name="submit" class="btn cardh-bg text-white text-bold margin-top-5"> Submit Comment </a>
            </form>
            <br />
            <div id="displayComments"></div>
        </div>
    </div>
</div>
<script type="text/javascript">
    jQuery(function($) {
        setInterval(function(){
            $.ajax({
                method: "GET",
                url: "<?php echo get_template_directory_uri()?>/get_chat.php"
            }).done(function(html){
                $('#displayComments').html(html);
            });
        }, 2000);

        function submitComment(){
            $.ajax({
                method: "POST",
                url: "template-live.php",
                data: {submitComment:$('#chatBox').val(),submitName:$('#nameBox').val(),submitEmail:$('#emailBox').val()}
            }).done(function(html){
                alert('Your comment has been submitted, and will be displayed after approval.');
                $('#chatBox').val('');
            });
        }
    });
</script>

谢谢 :)


问题答案:

当您执行javascript:submitComment()此操作时,将调用global函数submitComment。由于submitCommentjQuery(function($) { ... })函数中定义了,因此它不是全局的。因此,window.submitCommentundefined(因此undefined is not a function)。

全局变量存储在window对象中。

因此,可以将其公开submitComment为全局变量:

window.submitComment = function () {...}

请注意,应尽可能避免使用全局变量。在这种情况下,您可以添加以下内容:

$("#submit").click(submitComment);
// In this case, you shouldn't declare submitComment as a global anymore

并且由于您处于表单中,因此您希望通过单击功能末尾来停止单击a元素时的默认浏览器行为return false



 类似资料:
  • 在index.js,我有: 我从以下地方复制粘贴了代码:https://firebase.google.com/docs/functions/get-started 不知何故,当我使用 我得到: 错误:分析函数触发器时出错。ReferenceError:未在对象上定义函数。(/home/[USERNAME HERE]/functions/index.js:1:87)在模块中_在对象处编译(modu

  • 我试图显示一个关于成功promise的弹出式通知,但我一直收到“ReferenceError:doNotification未定义”。如果我在html中单击按钮时触发doNotification,它就会工作。我的电子邮件功能和控制台一样工作。日志将适当的参数打印到控制台。我不确定在我的电子邮件功能中调用doNotification时为什么会出现此错误?

  • 我是wordpress的新手,正在尝试定义和调用一个函数,但无法让它工作。 以下代码出现在使用get_template_part从content.php文件调用的php文件中。 我在function.php文件的底部添加了以下代码: 单击该元素时,它将返回: (index): 363未捕获引用错误:没有定义check AllTopicCheckBox。 有人能帮帮我吗?

  • 问题内容: 我已经运行(并重新启动了MySQL / Apache 2),但是仍然出现此错误: 致命错误:在第21行的/home/validate.php中调用未定义的函数mysql_connect() 说/etc/php5/apache2/conf.d/pdo_mysql.ini文件已被解析。 问题答案: 好吧,这是你的机会!看来PDO已准备就绪;用它代替。 尝试检查是否正在加载PHP MySQL

  • 在.citydoor.imports.catalog.tools中打包;

  • 我已经运行了(并重新启动MySQL/Apache 2),但我仍然得到这个错误: 致命错误:在第21行的/home/validate.php中调用未定义的函数mysql_connect() 表示/etc/php5/apache2/conf.d/pdo_mysql.ini文件已被解析。