如何在没有提交按钮的情况下显示“下拉菜单”?

时间:2017-07-05 13:19:57

标签: javascript angularjs

我想在点击小按钮后才为我的元素创建和显示菜单。

我有一个小按钮,运行功能“doAction”

<i class="fa fa-ellipsis-h" ng-click="doAction(\'OpenMenu\', $event)"></i>

在我的函数'doAction'中,我希望从事件鼠标点击获取位置X Y并在此处显示我的菜单。 几乎一切都有效...我有'下拉菜单'的问题。 更确切地说,我看到上面描述的按钮和此代码中的按钮(id = test):

 var menu = angular.element('<div class="dropdown">' +
                '<button id="test" class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown"><span class="caret"></span></button>'+
                '<ul class="dropdown-menu">'+
                '<li><a href="#">HTML</a></li>'+
                '<li><a href="#">CSS</a></li>'+
                '<li><a href="#">JavaScript</a></li>'+
                '</ul>'+
                '</div>');

            menu.css({
                position: 'absolute',
                left: event.clientX,
                top: event.clientY,
                zIndex: '999'
            });

            var body = angular.element(document).find('body').eq(0);
            body.append(menu);

现在,我必须点击第一个按钮'fa-ellipsis-h'稍后按钮“test”,然后才能看到我的菜单。 我不知道如何从变量“menu”中删除按钮'id = test',并在按下第一个按钮'fa fa-ellipsis-h'后立即打开菜单。

1 个答案:

答案 0 :(得分:0)

首先,您确定需要在函数中转义那些单引号吗?我将你的HTML复制并粘贴到jsbin中,因此就立即失败了。

如果我理解您的要求,您希望在第一次点击后打开菜单,而不是在点击<i>元素后再点击测试按钮。

我在这个垃圾箱里为我工作:working example <i class="fa fa-ellipsis-h" data-ng-click="doAction('OpenMenu', $event)">Menu</i>

单击立即打开菜单(我在这些元素的某些文本中添加了,因为我没有包含fontawesome库。)