Я использую Kartik Gridview и перезагружаю свои JS через Pjax (я считаю, что это правильный способ сделать это). Проблема в том, что всякий раз, когда я меняю страницы с помощью LinkPager
, мой JS (в основном) ломается на других страницах. Я полагаю, что это селекторы Jquery, но после попытки различных комбинаций я не дал результатов.
Откуда я go отсюда? Я в тупике.
Ниже мой JS:
Pjax::begin(['id' => 'lib_js', 'clientOptions' => ['showNoty' => false]]);
$url = Url::toRoute(['file/delete-file']);
$url2 = Url::toRoute(['file/toggle-public']);
$url3 = Url::toRoute(['file/reset-file-id']);
$script = <<< JS
function deleteRow() {
var keys = $('#library_grid').yiiGridView('getSelectedRows');
if(keys.length !== 0){
var len = keys.length
krajeeDialog.confirm('Are you sure you want to delete these <b>(' + len + ')</b> file(s)?', function(out){
if(out) {
//krajeeDialog.alert(keys);
$.ajax({
type: "POST",
url: '$url',
showNoty: false, // add this for disable notification
data: {keys: keys},
success: function(result){
$.pjax.reload({container: '#toast_pjax', timeout:5000});
$.pjax.reload({container: '#library_grid-pjax', timeout:5000});
$.pjax.reload({container: '#lib_js', timeout:5000});
}
});
}
});
}
else
{
krajeeDialog.alert("You must select a file(s).");
}
}
$("#dltrowbtn").on('click', function() {
deleteRow()
});
function sendToggleRequest(status, id) {
$.ajax({
type: 'POST',
url:'$url2',
showNoty: false, // add this for disable notification
data:{status:status, id:id},
success:function(data){
//$.pjax.reload({container: '#lib_js', timeout:5000});
}
});
}
$("#rfrshbtn").on('click', function() {
//$.pjax.reload({container: '#library_grid-pjax', timeout:5000});
//$.pjax.reload({container: '#lib_js', timeout:5000});
location.reload();
return false;
});
function sendResetIdRequest(id) {
$.ajax({
type: 'POST',
url:'$url3',
showNoty: false, // add this for disable notification
data:{id:id},
success:function(data){
$.pjax.reload({container: '#toast_pjax', timeout:5000});
$.pjax.reload({container: '#library_grid-pjax', timeout:5000});
$.pjax.reload({container: '#lib_js', timeout:5000});
},
});
}
$(".resetbtn").on('click', function() {
var id = $(this).attr("data-id");
sendResetIdRequest(id);
});
JS;
$this->registerJs($script, \yii\web\View::POS_READY);
Pjax::end(['id' => 'lib_js']);