GridViewを使用して新しいGridViewExtendedクラスを作成しました。それから、pjaxイベントを一度だけ登録する必要があります。簡単な例...Yii2、GridView、registerJsを一度だけバインド
<?php Pjax::begin(); ?>
<?= GridViewExtended::widget([])
<?php Pjax::end(); ?>
...
<?php
$this->registerJs('
$(document).ready(function(){
$("#w0").on("pjax:click", function() {
$("#w0 .box").append($("<div class=\"overlay\"><i class=\"fa fa-refresh fa-spin\"></i></div>"));
});
$("#w0").on("pjax:complete", function(contents,options) {
$("#w0 .box .overlay").remove();
});
$("#w0 .box .overlay").remove();
});'
);
?>
だから私はこのjsがGridViewExtendedクラスに登録されたことを望みます。 GridViewExtended :: run()を再定義してそこに登録すると、このjは各呼び出し(フロントエンド)に適用されます。
拳をクリック(例えばページ番号付け)すると、1回目、2回目に2回呼び出されます。これがロジック全体を破ります。
私はそれをビューに登録するとうまくいくが、GridViewExtendedに登録したい。
助けてください。
そして、何がポイントですか?すべてのタグでpjaxは各呼び出しでredifene \ rebindになります...私は何とか外部に登録する必要がありますが、gridviewモデルで登録する必要があります。 – user1954544