Я использую jQuery contextMenu (2.x) .что происходит, когда страница загружается первой, контекстное меню работает отлично.Но когда я перехожу на другую страницу, Turbolinks переносит меня на другую страницу.И когда я возвращаюсь на предыдущую страницу, когда я могу видеть контекстное меню (при щелчке правой кнопкой мыши), меню не отображается.
Я пробовал
У меня естьтакже попытался поместить код в тело, ожидая загрузки кода каждый раз.но я потерпел неудачу.Также я попытался использовать оба события load
и visit
;но без помощи.
Код
// See this for more info
// https://swisnl.github.io/jQuery-contextMenu/demo/callback.html
window.menuHandler = function () {
if (document.getElementsByClassName('schedules index').length === 0) {
return false;
}
if ($('.main-container.customer-view').length > 0) {
$.contextMenu({
selector: '.dragzones.context-menu-limited',
items: {
"autoSchedule": {
name: "Auto Schedule", icon: "copy", callback: function (itemKey, opt, e) {
ev = {};
ev.draggedUserItemIdFromList = $(this).attr('id');
ev.target = $(this).parent('td');
ev.duplicateCard = true;
window.handleCustomTasks(ev);
}
}
}
});
$.contextMenu({
selector: '.dragzones',
items: {
"edit": {
name: "Edit", icon: "edit", callback: function (itemKey, opt, e) {
$selectedCard = $(this);
window.editCardHandler($selectedCard);
}
},
"delete": {
name: "Delete", icon: "delete", callback: function (itemKey, opt, e) {
$selectedCard = $(this);
window.deleteCardHandler($selectedCard);
}
}
}
});
} else {
$.contextMenu({
selector: '.dragzones.context-menu-limited',
items: {
"autoSchedule": {
name: "Auto Schedule", icon: "copy", callback: function (itemKey, opt, e) {
ev = {};
ev.draggedUserItemIdFromList = $(this).attr('id');
ev.target = $(this).parent('td');
ev.duplicateCard = true;
window.handleCustomTasks(ev);
}
}
}
});
$.contextMenu({
selector: '.dragzones',
items: {
"edit": {
name: "Edit", icon: "edit", callback: function (itemKey, opt, e) {
$selectedCard = $(this);
window.editCardHandler($selectedCard);
}
},
"autoSchedule": {
name: "Auto Schedule", icon: "copy", callback: function (itemKey, opt, e) {
ev = {};
ev.draggedUserItemIdFromList = $(this).attr('id');
ev.target = $(this).parent('td');
ev.duplicateCard = true;
window.handleCustomTasks(ev);
}
},
"delete": {
name: "Delete", icon: "delete", callback: function (itemKey, opt, e) {
$selectedCard = $(this);
window.deleteCardHandler($selectedCard);
}
}
}
});
}
};
document.addEventListener("turbolinks:load", window.menuHandler);
document.addEventListener("turbolinks:visit", window.menuHandler);
Спецификации
Рельсы 4.2 Турболинк 5