2016-08-12 4 views
0

Я делаю местное время в jQuery. Я написал часть кода, но он не работает. Вот мой код:setInterval функция не работает

$(document).ready(function(){ 
    function addZero(i) { 
     if (i <= 9) { 
      i = "0" + i; 
     } 
     return i; 
    } 
    var d = setInterval(function(){ 
     var z = new Date(); 
     var h = addZero(z.getHours()); 
     var m = addZero(z.getMinutes()); 
     var s = addZero(z.getSeconds(); 
     var a = ''; 
     if (h > 11) a = "PM" 
     else a = "AM" 
     if (h == 16) h = '0'+4 
     $('pre').html(h + ":" + m + ":" + s + "&nbsp;" + "a"); 
    },1000); 
}); 
+1

вы должны получать сообщение об ошибке в консоли - что это –

ответ

1

Вы сделали какие-то ошибки - проверить код

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
 
<script> 
 
$(document).ready(function(){ 
 
    var d,z,h,m,s,a 
 
    function addZero(i) { 
 
    if (i <= 9) i = "0" + i; 
 
    return i; 
 
    } 
 
    d = setInterval(function(){ 
 
    z = new Date(); 
 
    h = addZero(z.getHours()); 
 
    m = addZero(z.getMinutes()); 
 
    s = addZero(z.getSeconds()); 
 
    a = ''; 
 
    if (h > 11) a = "PM" 
 
    else a = "AM" 
 
    if (h == 16) h = '0'+4 
 
    $('#timer').html(h + ":" + m + ":" + s + "&nbsp;" + a); 
 
    },1000); 
 
}); 
 
</script> 
 
<pre id="timer"></pre>

+0

почему 'вар г, ч, м, с, a' нужно быть за пределами функции они используются в , но no 'var i' –

+0

@JaromandaX Я забыл объявить' var i', но его работа отлично. –

+0

Я думаю, что это хорошая практика кодирования, чтобы поместить все объявления в начало каждого скрипта или функции. @JaromandaX –

1

Вы пропустили один )

$(document).ready(function(){ 
 
    
 
    function addZero(i) { 
 
    if (i <= 9) { 
 
     i = "0" + i; 
 
    } 
 
    
 
    return i; 
 
    } 
 
    
 
    
 
    var d = setInterval(function(){ 
 
    var z = new Date(); 
 
    var h = addZero(z.getHours()); 
 
    var m = addZero(z.getMinutes()); 
 
    var s = addZero(z.getSeconds()); 
 
     
 
    var a = ''; 
 
    if (h > 11) { 
 
     a = "PM" ; 
 
    } 
 
    else { 
 
     a = "AM"; 
 
    } 
 
    
 
    if (h == 16) { 
 
     h = '0'+4; 
 
    } 
 
    
 
    $('pre').html(h + ":" + m + ":" + s + "&nbsp;" + a); 
 
    
 
    },1000); 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<pre></pre>

+0

Спасибо @SurenSrapyan проголосуйте. но я сделал две ошибки, поместил 'var a' в String. –

0

Пожалуйста, используйте нижеприведенный код в вашем коде, существует функция var d, которая объявляется для setInterval, но я не видел эту функцию в качестве вызываемого. поэтому откуда он будет звонить. выше ответ также является точным и правильным, но объявление глобальной переменной здесь не требуется для d, z, h, m, s, a в нижнем коде. Локальная переменная также работает.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
 
<script> 
 
$(document).ready(function(){ 
 
    //var d,z,h,m,s,a 
 
    function addZero(i) { 
 
    if (i <= 9) i = "0" + i; 
 
    return i; 
 
    } 
 
    setInterval(function(){ 
 
    var z = new Date(); 
 
    var h = addZero(z.getHours()); 
 
    var m = addZero(z.getMinutes()); 
 
    var s = addZero(z.getSeconds()); 
 
    var a = ''; 
 
    if (h > 11) a = "PM" 
 
    else a = "AM" 
 
    if (h == 16) h = '0'+4 
 
    $('pre').html(h + ":" + m + ":" + s + "&nbsp;" + a); 
 
    },1000); 
 
}); 
 
</script> 
 
<pre id="timer"></pre>

+0

d будет то, что setInterval возвращается. Которые впоследствии могут быть использованы для отмены интервала –

Смежные вопросы