Как удалить тень из меню YUI во время выполнения?
У меня есть кнопка меню, из которой я хочу удалить тень. Я хотел бы не создавать экземпляр объекта меню вначале (поскольку он требует, чтобы я указал div в DOM, чтобы присоединить его). Я могу создать экземпляр меню в JS, но когда я пытаюсь удалить тень с помощью: this.menuButton.getMenu().cfg.setProperty('shadow', false);
тень все еще появляется. Я проверил объект cfg в отладчике JS, и тень установлена в false, но тень все еще появляется.
Другим вариантом может быть удаление теневого div из dom, но это не похоже на то, что нужно делать.
1 ответ
В конце концов я создал 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);