0

This Timer Pluginを使用して、ボタンがクリックされるとタイマーを作成しています。ここで実際の動作を見ることができます。気づけば、いずれかの購入ボタンを 2 回クリックしても無視され、再度実行されることはありません。これを修正する方法がわかりません。タイマーが終了したら、ボタンをクリックするたびにタイマーを再起動する必要があります。

最初のボタンで使用している HTML は次のとおりです。

<h3 class="protection"><span id="sentryTime">00:00:00</span><a href="javascript:sentry()">Purchase Sentry</a></h3>

そして、これがプラグインを呼び出してタイマーを作成するボタンで使用しているjavascriptです。

function sentry() {
    var dateCreated1 = new Date();
    setCharacterTime(/*hr*/0,/*min*/0,/*sec*/5,/*title*/'sentryTime',dateCreated1)} 


function setCharacterTime(hours, minutes, seconds, title, creationDate) {

    var thisDay = creationDate;
    var year = thisDay.getFullYear();
    var month = thisDay.getMonth();
    var day = thisDay.getDate();
    var aHour = thisDay.getHours();
    var aMinutes = thisDay.getMinutes();
    var aSeconds = thisDay.getSeconds();
    var aMilli = thisDay.getMilliseconds();
    thisDay = new Date(year, month, day, aHour + hours, aMinutes + minutes, aSeconds + seconds, aMilli);
    $('#' + title).countdown({until: thisDay, format: 'HMS', layout: ' {hnn}{sep}{mnn}{sep}{snn}', expiryText: 'complete '});
    ;} //end setCharacterTime() function 

jQuery プラグインを確認する必要がある場合は、ここでライブで見つけることができます。

4

1 に答える 1

0

これは、プラグインの作成者から受け取った解決策です。

function sentry() {
    setCharacterTime('+5s', 'sentryTime');
}
function security() {
    setCharacterTime('+5m', 'securityTime');
}
function police() {
    setCharacterTime('+8m', 'policeTime');
}
function soldier() {
    setCharacterTime('+1h', 'soldierTime');
}
function warrior() {
    setCharacterTime('+1h +45m', 'warriorTime');
}
function setCharacterTime(offset, title) {
    var alertStatement = 'this is supposed to pop up once the timer is complete.';
    $('#' + title).countdown({format: 'HMS', layout: ' {hnn}{sep}{mnn}{sep}{snn}', // Initialise
        onExpiry: function() {
            alert(alertStatement);
        }
    }).countdown('option', {until: offset});// Update
}
于 2012-10-25T01:56:37.007 に答える