2012-02-14 9 views
0

私の目的は、ユーザーが多数のページ(1ページに隠れたdiv)をナビゲートする時間を測定することです。私は好ましくはmm:ssまたはsssだけで時間を記録することができます。jqueryを使用してページ上のアクション(ボタンクリック間のストップウォッチ)の時間を測定する方法

タイマーを開始する入力ボタンから開始し、非表示のdivの1つで別のボタンをクリックするとタイマーが停止します。

最終目標は同じページに3つのタイマーを持つことで、jqueryまたはw/e経由でなければならず、elseをクリックすると2つの異なるボタン間の時間を計ることができます。

私はコントローラーでどのように行うことができますが、私は3つの別々の時間を収集する必要があるので、それは3つの別々のアクション/ dbセーブでは実行できません。

これまでに私が見つけたのは、既にあなたに時間を設定していて、それがストップウォッチではなくカウントダウンとして機能することです。

ご協力いただければ幸いです。ここで

答えて

1
$(function() { 

    //cache the time when `document.ready` fires and create a variable to track clicks 
    var startTime = new Date().getTime(), 
     clicks = []; 

    //only bind the `click` event handler to elements with the `my-links` class so we don't track every click on the webpage 
    $('.my-links').on('click', function() { 

     //push an object onto the tracking array that includes the target of the link and the time when it was clicked 
     clicks.push({ time : new Date().getTime(), target : $(this).attr('href') }); 
    }); 
});​ 

はデモです:http://jsfiddle.net/wwnyY/1/

あなたはその後、保存されたクリックのあなたの配列を反復処理、または後で使用するために保存するために、サーバーサイドスクリプトに送信することができます。ここで

Date()のためのいくつかの良いドキュメントです:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

1

あなたはこのためjQueryは必要ありません。あなたは得ることができ、現在のミリ秒-以来-エポックこのような値:

var ms = new Date().getTime(); 

または文字カウントがあなたのものである場合:

var ms = +new Date(); 

は2回だけそれを行うと第二から第一を引きます。 jQueryが関与している唯一の場所は、ボタンのクリックをフックすることです(例:

$("selector_for_button").click(function() { 
    // ...your code here... 
}); 
関連する問題