Как удалить тень из меню YUI во время выполнения? - PullRequest
0 голосов
/ 16 января 2011

У меня есть кнопка меню, из которой я хочу удалить тень.Я бы хотел, чтобы , а не , сначала нужно было создать экземпляр объекта меню (поскольку он требует, чтобы я указал div в DOM, чтобы присоединить его).Я могу создать экземпляр меню в JS, но когда я пытаюсь удалить тень через: this.menuButton.getMenu().cfg.setProperty('shadow', false);, тень все равно появляется.Я проверил объект cfg в отладчике JS, и тень установлена ​​в false, но тень все еще появляется.

Другой вариант - удалить тень div из dom, но это не такчто нужно сделать.

1 Ответ

0 голосов
/ 17 января 2011

В конце концов я создал div в моем DOM для хранения моего меню. Сначала я был осторожен, потому что мой макет не очень надежен (мы привлекли к работе графического дизайнера и пытались интегрировать его работу с нашим кодом); вот почему я не хотел вводить div в DOM.

Ключом для меня было включение div в такое место, где это не повлияет на макет. Изначально у меня было что-то похожее на это:

<input> type="button" id="srchType" />
<input type="text" id="first-name" value="First Name" />
<input type="submit" id="profiles-search-submit" value="Search" />

Я вставил div между двумя входами; это испортило мой макет. Ключ должен был вставить div до или после; это не испортило бы мой макет. YMMV, в зависимости от того, насколько чувствительна ваша DOM к изменениям; Надеюсь, это поможет кому-то, если ему интересно, что ему делать.

После того, как вы это сделаете (создайте свой div), вы можете создать объект YUI Menu следующим образом:

var searchMenuItems = 
  [{ text: "First Name", value: 'firstName', onclick: {fn: onMenuItemClick}},
   { text: "Last Name", value: 'lastName', onclick: {fn: onMenuItemClick}}];

var srchTypeMenuConfig = { shadow: false,
                           effect: { 
                            effect: YAHOO.widget.ContainerEffect.FADE,
                            duration: .25 
                           }
                         };
this.srchTypeMenu = new YAHOO.widget.Menu(this.searchMenuEl, 
                                          srchTypeMenuConfig);
...