Monaca Javascript不起作用

Posted

技术标签:

【中文标题】Monaca Javascript不起作用【英文标题】:Monaca Javascript not working 【发布时间】:2017-08-10 13:40:30 【问题描述】:

我有以下代码,显示的简单 js 不起作用。如何让js在monaca工作?

这是我正在做的事情的代码。

顺便说一下,我已经从配置屏幕添加了 jQuery (Monaca 版本) 版本:2.0.3。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
  <script src="components/loader.js"></script>
  <script src="lib/onsenui/js/onsenui.min.js"></script>

  <link rel="stylesheet" href="components/loader.css">
  <link rel="stylesheet" href="lib/onsenui/css/onsenui.css">
  <link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css">
  <link rel="stylesheet" href="css/style.css">

  <script>
    //this starts the count down. 
    //time should be in seconds
    function countDown(time)
        $("#countDown").txt(time);
        var timeout=setTimeout(function()
            time--;
            $("#countDown").txt(time);
            if(time==0) clearTimeout(timeout);
        , 1000);
    

    ons.ready(function() 
        countDown(10);
    );

  </script>
</head>
<body>
    <div id="countDown"></div>
</body>
</html>

【问题讨论】:

【参考方案1】:

根据我在您的代码中看到的情况,您在将 time 变量的值分配给 &lt;div&gt; 元素时出现了拼写错误。不是$("#countDown").txt(time);,是$("#countDown").text(time);

此外,从您的函数名称来看 - countdown 我猜您正在尝试创建一个出现在屏幕上的计数器。在这种情况下,您不应该使用 setTimeout(function, period) 函数,因为它用于调用作为其参数传递的函数,仅在句点(作为第二个参数传递)通过后调用一次。因此,您应该使用setInterval(function(),period) 函数,该函数会在每次周期过去时调用该函数。因此,您应该使用clearInterval() 而不是clearTimeout()

您的代码应如下所示:

<script>
    //this starts the count down. 
    //time should be in seconds
    function countDown(time)
        $("#countDown").text(time);
        var timeout=setInterval(function()
            time--;
            $("#countDown").text(time);
            if(time==0) clearInterval(timeout);
        , 1000);
    

    ons.ready(function() 
        countDown(10);
    );
</script>

【讨论】:

以上是关于Monaca Javascript不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Javascript 不起作用?

Javascript:为啥有时 alert() 不起作用但 console.log() 起作用?

Javascript - 使数组索引 toLowerCase() 不起作用

延迟解析 JavaScript 不起作用

Javascript代码不起作用?告诉我为啥[重复]

Swift 接收 javascript 消息不起作用