如果函数内部未定义jQuery

jQuery if inside a function undefined

本文关键字:jQuery 未定义 内部 函数 如果      更新时间:2023-09-26

我有一个简单的代码,它显示了一个图像和一个单词,您必须完成该字段。如果你把单词写对了,就会弹出一个祝贺的弹出窗口。

我能够弄清楚如何在array中随机化项目以显示随机图像。现在我想检查每个keyup是否与那个随机单词匹配。

我的IF语句似乎有问题,因为如果我删除它,弹出窗口将完美工作。

错误:

未捕获的typeerror undefined不是函数

代码:

<html>
    <head>
    <title>AutistApp</title>
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <script src="js/jquery.min.js"></script>
    </head>
    <body>
        <div id="container">
        <div class="eval">CORRECTO</div>
        <div class="siguiente"><a href=".">&iexcl;OTRA VEZ!</a></div>
        <div class="dibujo"><img id="dibujito" src="img/apple.png" /></div>
        <div class="palabra">MANZANA</div>
        <div class="respuesta"><input type="text" id="resp" name="resp" value=""/>
        </div>
    </div>
<script type="text/javascript"> 
/***** RANDOM VALUES *****/
var messages = ["manzana", "pera", "banana"],
    message = messages[Math.floor(Math.random() * messages.length)];
$('.palabra').text(message);
$('#dibujito').attr('src','img/'+message+'.png');
/***** KEYDOWN CHECK *****/
$(document).ready(function(){
    $('#resp').keyup(function(){
        if ($("#resp").value() == message) {
            $('.eval').slideDown();
            $('.eval').delay(3000).fadeOut();
            $('.siguiente').delay(3000).slideDown();
        }
    });
});
</script>
</body>
</html>

您需要使用.val((而不是.value()来获得input元素的值,因此您可以执行:

if ($("#resp").val() == message) {

而不是:

if ($("#resp").value() == message) {

您还需要将所有代码封装在DOM就绪处理程序中:

$(document).ready(function () {
    var messages = ["manzana", "pera", "banana"],
        message = messages[Math.floor(Math.random() * messages.length)];
    $('.palabra').text(message);
    $('#dibujito').attr('src', 'img/' + message + '.png');
    $('#resp').keyup(function () {
        if ($("#resp").val() == message) {
            $('.eval').slideDown();
            $('.eval').delay(3000).fadeOut();
            $('.siguiente').delay(3000).slideDown();
        }
    });
});

需要使用的人

 $("#resp").val() 

在if条件下。