我如何使用标签作为Repeater中的倒计时

时间:2014-07-04 13:18:08

标签: javascript jquery asp.net

我的情景就是这样。我有一个转发器和项目模板有一个跨度(标签)我从数据库得到一些日期,我想向客户显示倒计时。

我试着这样写。

<script type="text/javascript">
    jQuery(document).ready(function() {
     var _second = 1000;
        var _minute = _second * 60;
        var _hour = _minute * 60;
        var _day = _hour * 24;
        var timer;

        $("#carCampaign span").each(function (index, value) {
            //alert(index);
            var data = $(this).attr('data');

            if (data == 'timer') {

                var end = $(this).attr('end');
                var date = new Date(end);

                function showRemaining() {
                    var now = new Date();
                    var distance = date - now;

                    if (distance < 0) {

                        clearInterval(timer);
                        document.getElementById('#Label3' + i).innerHTML = 'EXPIRED!';

                        return;
                    }
                    var hours = Math.floor((distance % _day) / _hour);
                    var minutes = Math.floor((distance % _hour) / _minute);
                    var seconds = Math.floor((distance % _minute) / _second);

                    document.getElementById('Label3').innerHTML = hours + 'hrs ';
                    document.getElementById('Label3').innerHTML += minutes + 'mins ';
                    document.getElementById('Label3').innerHTML += seconds + 'secs';
                    $(this).innerHTML = hours;


                }

                timer = setInterval(showRemaining, 1000);
            }
        });

    });
</script>

这是我的.HTML

<div id="carCampaign">
            <asp:Repeater runat="server" ID="rptOpportunities" OnItemDataBound="rptOpportunities_ItemDataBound" OnItemCommand="rptOpportunities_ItemCommand">
                <ItemTemplate>                        
                            <div class="panel-body">
                                <a href="#anyword">
                                    <div class="row">
                                        <div class="col-md-4 search-img">
                                            <asp:Image ID="imageCar" itemprop="image" CssClass="img-responsive" runat="server" />
                                            <div class="row weight-700"><span class="fa fa-clock-o" style="padding-removed 15px;"></span> </div>
                                            <div class="row">
                                                <div class="coming-soon-plugin" style="font-size: 2.2em; padding-removed 15px; margin-removed -35px;">
                                                    <asp:Label ID="Label3" runat="server" ClientIDMode="Static" CssClass="timer" Text='<%#Eval("DueDateTime") %>' data="timer" end='<%#Eval("DueDateTime") %>'>
                                                    </asp:Label>
                                                    <asp:Label ID="Label1" runat="server"></asp:Label>
                                                    <br />
                                                    <asp:Label ID="Label2" runat="server" />
                                                </div>
                                            </div>
                                        </div>
                </ItemTemplate>
            </asp:Repeater>
                </div>

但那个时间只是第一个跨度转换为coundown另一个不起作用。 并且我假设每次倒计时都尝试工作第一个跨度。你有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果我理解,你想为转发器控件中从数据库检索的每个日期创建倒数计时器。

如果这是真的,你可以从下面提到的jQuery插件中获得帮助。

jQuery Countdown

25+ Best Free jQuery Countdown Timer Scripts and Plugins

希望它有所帮助!!