2017-03-19 8 views
0

다음 코드가 있으며 표시된 js가 작동하지 않습니다. 어떻게하면 모나카에서 js 작업을 할 수 있습니까?Monaca Javascript가 작동하지 않습니다.

여기에 내가하고있는 코드가 있습니다.

그런데 구성 화면에서 jQuery (Monaca Version) 버전 : 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

내가 코드에서 무엇을보고에서, 당신은 <div> 요소에 time 변수의 값을 할당에 오타를했습니다. $("#countDown").txt(time);이 아니며 $("#countDown").text(time);입니다.

또한 함수 이름으로 판단 할 때 - countdown 화면에 카운터를 만들려고합니다. 이 경우에는 setTimeout(function, period) 함수를 사용하면 안됩니다.이 함수는 인수로 전달 된 함수를 호출하는 데 사용되며, 두 번째 인수로 전달 된 후 한 번만 전달됩니다. 따라서 setInterval(function(),period) 함수를 사용해야하며이 함수는 마침표가 전달 될 때마다 함수를 호출합니다. 따라서 clearTimeout() 대신 clearInterval()을 사용해야합니다.

코드는 다음과 같이 보일 것이다 :

<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>