我在网页上突出显示文字后尝试打开下拉菜单但下拉菜单没有打开。此外,我已将对象转换为字符串,因此当您在窗口中单击但未选择任何文本时它不会打开,我是否应该创建DIV而不是字符串?
HTML:
<ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
<li><a href="#">comment</a></li>
<li><a href="#">message</a></li>
</ul>
JS:
function getSelected() {
if (window.getSelection) {
return window.getSelection();
}
else if (document.getSelection) {
return document.getSelection();
}
else {
var selection = document.selection && document.selection.createRange();
if (selection.text) {
return selection.text;
}
return false;
}
return false;
}
var selection = getSelected();
function checkObj(){
var a = String(selection);
var b = a.length;
if (b > 0){
$('.dropdown-menu').dropdown('toggle');//this isn't working
}
}
$(window).mouseup(function() {
var a = checkObj(selection);
});
更新: 我已经拿到了要显示的菜单,但它只显示我是否突出显示文本,然后将指针拖到文本框外面,但是如果我只突出显示一个单词则不起作用。此外,我可以将下拉列表显示在我突出显示的文本上方。
答案 0 :(得分:0)
$('.dropdown-menu').dropdown('toggle');
由于dropdown
功能可能会检查点击事件或其他内容,因此无法正常工作。
$('.dropdown-menu').show();
似乎正确打开菜单,需要手动编写js代码才能关闭菜单,请在https://css-tricks.com/dangers-stopping-event-propagation/外部查看关闭元素的正确方法。