Повторно инициализируйте или проверьте, инициализировано ли меню

У меня проблема с инициализацией контекстного меню в сетке, и оно работает, но у меня есть другая функция на странице, которая при нажатии скрывает сетку, когда я возвращаю сетку обратно, меню больше не работает, я думаю, что, возможно, повторная инициализация исправит мою проблему.

Как бы я повторно инициализировать меню? Если нет функции "повторной инициализации", то как я могу проверить, было ли создано меню, прежде чем я уничтожу его и сделаю другое?

Я знаю, что могу уничтожить его, но не могу понять, как определить, инициализирован ли он первым?

JS:

if(order.contextmenu("initialized"))
    order.contextmenu("destroy");

2 ответа

Решение

Я не смог это исправить или выяснить, поэтому я удалил плагин контекстного меню и пошел с другим автором плагина, у которого была хорошая документация (ссылка ниже):

http://swisnl.github.io/jQuery-contextMenu/

Меню может быть (повторно) инициализировано - как любой виджет jQuery UI - путем вызова

$(selector).contextmenu({...})

но обычно это не должно быть необходимо:

Если сетка была только скрыта (но не удалена), меню должно просто продолжать работать, как только сетка снова станет видимой.

Если сетка удалена и создана заново, селектор должен соответствовать некоторому родительскому элементу, который не был удален, например, так:

$(document).contextmenu({
    delegate: ".grid-cell",
    ...
})

Затем снова меню продолжит работать.

Другие вопросы по тегам