2017-07-08 29 views
0

次のtdは、JavaScriptを使用して1ページ目の読み込み時に更新され、以下の結果が得られます。 ページネーションリンクが呼び出されると、ドキュメント準備は&と呼ばれず、日付は書き換えられません。 Iveはさまざまなことを試みましたが、シームを使って作業しませんでした。ページの書き換えでは、属性はサーバー側で更新されます。 ajax呼び出しはありません。ページ区切りリンクは、同じページを再読み込みする単純なURLですが、クエリパスは変更されています。私はリロードの動作が正常であることを理解しています - 私はそれを回避できません。ページの読み込みが開始されないドキュメントの読み込み

今後のロードで初期化コールを呼び出すにはどうすればよいですか?

<td class="date" data-time="1499543100110"></td> 

$(document).ready(function() { 
    initialise(); 
}); 

function initialise() { 
    $(".date").each(function(){ 
     var millisec = parseInt($(this).attr("data-time")); 
     var ts = moment(new Date(millisec)).format("MMMM Do YYYY, h:mm:ss a"); 
     $(this).text(ts); 
    }); 
} 

<a href="?page=6&amp;size=20&amp;criteria=" data-ajax-load="#ajaxload">7</a> 

出力

としては、提案された

<td class="date" data-time="1499543100110">July 8th 2017, 8:45:00 pm</td> 

更新は、以下の問題にもっとありました。ページネーションのリンクがキャプチャされていた&リクエストがajaxによって発行され、すべての通常のjsフックがバイパスされました。私は&のキャプチャをすべて削除しました。ネットワークのURLトラフィックは、単純なページロードのように見えましたが、実際はajaxコールでした。

$(document).on('click', 'a[data-ajax-load]', function(event) { 
    var _url = $(event.target).attr('href'); 
    var _target = $(event.target).data('ajax-load'); 
    $(_target).load(_Url + ' ' + _target, 
     function(response, status, xhr) { 
      // display errors etc 
     } 
    ); 
    return false; 
}); 

下記の回答はすべて間違いないかもしれませんが、それらを調べる必要はありません。

+1

ページネーションリンクのclickイベントで 'initialise()'を呼び出しますか? –

+0

他に表示されていないものも別のものでなければなりません。ブラウザのコンソールにエラーがありますか? – charlietfl

+1

あなたの質問を編集し、その部分を見せてください:*«ページネーションリンクは同じページを読み込んだだけの簡単なURLですが、クエリーパスが変更されました»* –

答えて

0

私はこれを見つけました...
を試してみてくださいajaxComplete() ... ajaxリクエストが完了すると起動します。

$(document).ajaxComplete(initialise); 

;)

+1

これはajaxフックで動作します – user2177118

0

次のようにあなたの体のタグに「onloadイベント」を使用して試すことができます:

<body onload="myFunction()"> 
    //Code 
</body> 

これが何をするか、それはこの場合<body>には、タグを待っていることです(この場合はmyFunction()

編集したコードは、次のようなものにしてください。

<body onload="initialise()"> 
    <td class="date" data-time="1499543100110"></td> 

    function initialise() { 
    $(".date").each(function(){ 
     var millisec = parseInt($(this).attr("data-time")); 
     var ts = moment(new Date(millisec)).format("MMMM Do YYYY, h:mm:ss 
    a"); 
     $(this).text(ts); 
    }); 
    } 

    <a href="?page=6&amp;size=20&amp;criteria=" data-ajax load="#ajaxload">7</a> 
</body> 

編集:いくつかのオンライン調査した結果、私はこれを見つけた:

あなたは次のように同様の効果を刺激するだけでなく、JavaScriptのbody.onload()関数を使用することができます。

body.onload(initialise); 

私はjQueryの専門家ではありませんが、あなたのコードを見れば、わかりませんが、あなたもこれを行うことができると私は考えています。

$(body).onload(function() { 
    initialise(); 
}); 
+0

これは元の問題 – user2177118

関連する問題