Вывод обратного отсчета в div


У меня этот код работает с jQuery отсчет плагин , чтобы взять строку ввода и вывода обратного отсчета в div. Есть ли лучший способ реализации этого?

JSFiddler

HTML-код

<div id="defaultCountdown"  class="arg">Here</div>

Сценарий

function stringToCountdown(element,str){
        /* Parse the String */
        var hh = parseInt(str.substr(0,2),10);
        var mm = parseInt(str.substr(2,2),10);
        var ss = parseInt(str.substr(4,2),10);
        var parity = parseInt(str.substr(4,2),10);


        var austDay = new Date();
        austDay = new Date(    austDay.getFullYear() , austDay.getMonth(), 
                            austDay.getDate(),austDay.getHours()+hh, 
                            austDay.getMinutes()+mm, austDay.getSeconds()+ss );        
        $('#defaultCountdown').countdown({until:austDay , compact: true,format: 'dHMs',expiryText: 'No More Counter for you'});
        }

        $(function () {    
          stringToCountdown('#defaultCountdown6','000005');
       });

Я должен переписать это, чтобы сделать его проще и быстрее?



1571
4
задан 29 октября 2011 в 11:10 Источник Поделиться
Комментарии
1 ответ

Вы можете совместить ВАР заявления и положить их верхней части функции. Прокладка неиспользуемые переменные, такие как четность и использовать элемент переменной вместо использования #defaultCountdown напрямую. И, наконец, немного форматирование сделает ваш код очень читабельный. Вот это результат.

Если вы пытаетесь достичь относительного отсчета, плагин сам ее поддерживает. Я также ставил в пример, чтобы показать, как это делать.

function stringToCountdown(selector, str){
var hh = parseInt(str.substr(0,2), 10),
mm = parseInt(str.substr(2,2), 10),
ss = parseInt(str.substr(4,2), 10),
austDay = new Date();

austDay = new Date(
austDay.getFullYear(),
austDay.getMonth(),
austDay.getDate(),
austDay.getHours() + hh,
austDay.getMinutes() + mm,
austDay.getSeconds() + ss
);

$(selector).countdown({
until: austDay,
compact: true,
format: 'dHMs',
expiryText: 'No More Counter for you'
});
}

$(function () {
stringToCountdown('#defaultCountdown','000010');
});

И это менее читабельный вариант. Существует без дополнительной переменной. Поэтому он может работать немного быстрее.

function stringToCountdown(selector, str){
var austDay = new Date();
$(selector).countdown({
until: new Date(
austDay.getFullYear(),
austDay.getMonth(),
austDay.getDate(),
austDay.getHours() + parseInt(str.substr(0,2), 10),
austDay.getMinutes() + parseInt(str.substr(2,2), 10),
austDay.getSeconds() + parseInt(str.substr(4,2), 10)
),
compact: true,
format: 'dHMs',
expiryText: 'No More Counter for you'
});
}

$(function () {
stringToCountdown('#defaultCountdown','000010');
});

3
ответ дан 31 октября 2011 в 09:10 Источник Поделиться