Как мне переместить виджет на экран? - PullRequest
1 голос
/ 31 октября 2011

У меня есть виджет Menu, который я хочу отображать всякий раз, когда пользователь нажимает на определенные элементы dom, но я не хочу MenuBar.Какой лучший способ сделать это?Я попытался прикрепить обработчики кликов к соответствующим элементам DOM и заставить обработчик кликов отображать Menu, но я могу заставить его отображать Menu только в той области, где будет отображаться исходная декларативная разметка.Я не могу заставить его двигаться вообще.Я пытаюсь использовать dojo.style(myWidget.domNode, 'top', calculatedTop) (и эквивалент с 'left').Что (очевидная вещь) мне не хватает?

Спасибо.

1 Ответ

2 голосов
/ 31 октября 2011

Поскольку вы используете стандартный виджет меню dijit , я думаю, вам просто нужно указать свойство targetNodeIds в виджете меню ( ссылка ), чтобы определить, где находитсяконтекстное меню имеет отношение:

targetNodeIds (Defined by dijit.Menu)
    Array of dom node ids of nodes to attach to. Fill this with nodeIds upon widget creation and it becomes context menu for those nodes.

Чтобы всплывающее окно показывалось при щелчке левой кнопкой мыши, я полагаю, что вы захотите использовать свойство leftClickToOpen:

// leftClickToOpen: [const] Boolean
//      If true, menu will open on left click instead of right click, similiar to a file menu.
//defaults to false
leftClickToOpen: false,

Задание этого декларативно будет выглядетькак:

<div data-dojo-type="dijit.Menu" data-dojo-props="targetNodeIds: ['nodeId1','nodeId2','nodeId3'], leftClickToOpen:true"
        style="display: none;">
<!-- Your content here -->
</div>
...