Взаимодействие javascript между assets в yii2
Сделал виджет со своим Asset в котором подключается new-widget.js
class newWidget {
static init(){
$( "#grid_column_sort ul" ).sortable({
connectWith: ".connectedSortable",
placeholder: "ui-state-highlight",
cancel: ".ui-state-disabled",
}).disableSelection();
};
}
У меня есть AppAsset в котором подключается user.js
window.onload = function() {
newWidget.init();
$(document)
.on('pjax:complete', function() {
newWidget.init();
})
};
Виджет newWidget подключен не на всех страницах, как лучше проверить его наличие? Или как лучше организовать их взаимодействие?
Ответы (1 шт):
Автор решения: adasafaf asasdasd
→ Ссылка
Разорвал связи с помощью делегирования. new-widget.js:
class newWidget{
static enableSortable() {
$( "#grid_column_sort ul").sortable({
connectWith: ".connectedSortable",
placeholder: "ui-state-highlight",
cancel: ".ui-state-disabled",
}).disableSelection();
}
static init() {
$(document)
.on('mouseover', function(event) {
if (event.target.id === 'grid_column_sort') {
let $grid = $("#grid_column_sort");
if ($grid.data('init') !== true) {
gcs.enableSortable();
$grid.data({init: true});
}
}
})
.on('click', function(event) {
if (event.target.id === 'hide_grid_column_sort') {
let elem = document.getElementById('grid_column_sort');
elem.hidden = !elem.hidden;
}
})
}
}
$(window).on('load', function() {
gcs.init();
})