【发布时间】:2016-07-19 03:36:38
【问题描述】:
我想使用 ui.bootstrap.dropdown 消息框以类似于 ui.bootstrap.popover 的方式显示文本信息(不是链接)。我想修改这个指令,因为它完成了我需要的 99%,并且我不想添加弹出框需要的所有额外 JS。
换句话说,我希望当用户将鼠标悬停在向下箭头上时显示“下拉列表区域”,然后当他们将鼠标从向下箭头移开时消失。
有没有一种方法可以向 ui.bootstrap.dropdown 添加一个选项,以便将鼠标悬停在箭头上会显示和隐藏下拉框。我不想在这个框中放置任何链接。
我希望有人有一些想法可以帮助我建议如何更改 ui.bootstrap.dropdown 附带的指令:
.directive('dropdownToggle', function () {
return {
require: '?^dropdown',
link: function (scope, element, attrs, dropdownCtrl) {
if (!dropdownCtrl) {
return;
}
dropdownCtrl.toggleElement = element;
var toggleDropdown = function (event) {
event.preventDefault();
if (!element.hasClass('disabled') && !attrs.disabled) {
scope.$apply(function () {
dropdownCtrl.toggle();
});
}
};
element.bind('click', toggleDropdown);
// WAI-ARIA
element.attr({ 'aria-haspopup': true, 'aria-expanded': false });
scope.$watch(dropdownCtrl.isOpen, function (isOpen) {
element.attr('aria-expanded', !!isOpen);
});
scope.$on('$destroy', function () {
element.unbind('click', toggleDropdown);
});
}
};
【问题讨论】:
-
你需要JS来激活鼠标悬停功能
-
好吧,我可以使用 js,但我不想添加我在查看 popover 时看到的几百行以及随之而来的所有内容。我希望是否有某种方法可以修改下拉指令。
-
或许你想试试bootstrap的tooltip功能
-
我查看了工具提示,但我们正在寻找与下拉菜单匹配的内容以保持相同。这就是为什么我对下拉列表的任何潜在小修改非常感兴趣,这可以帮助我和其他任何寻找相同内容的人。我查过,但在网上找不到任何示例。
-
@Alan 你能把 JS 小提琴放在一起吗?我们可以调查一下。
标签: angularjs angular-ui-bootstrap