Javascript 在 dynameclly 创建的选择框中添加工具提示
Javascript adding tooltip on over in selectbox that is created dynameclly
我有一个 select 框,我用 javascript 动态创建我想在结束时添加一个工具提示
将鼠标移到 selected 选项上,它只会给我该选项的文本值。
这就是我创建 select 盒子的方式(简单)
var selectBoxDB = document.createElement("select");
selectBoxDB .classList.add("form-control");
selectBoxDB .id = "select_"+mydata["source_name"];
selectBoxDB .style.width = "300px";
td.appendChild(selectBoxDB );
for(var key in mydata.servers_list) {
if (dbEntry.servers_list.hasOwnProperty(key)) {
var option = new Option(key, key);
option.title = key;
selectBoxDB .appendChild(option);
}
}
如何在此处组合或附加 select 框创建时的功能
当鼠标悬停在 selected 选项上时,它会弹出工具提示?
您可以将全局鼠标 enter/leave 侦听器添加到 <select>
以显示包含当前值的工具提示。
const tooltip = document.querySelector('.tooltip');
const showTooltip = (e) => {
Object.assign(tooltip.style, {
top: `${e.clientY + 8}px`,
left: `${e.clientX + 8}px`
});
tooltip.innerHTML = JSON.stringify({
value: `${e.target.value}`,
text: `${e.target.selectedOptions[0].text}`
}, null, 2);
tooltip.classList.add('show');
e.target.setAttribute('title', e.target.selectedOptions[0].text);
};
const hideTooltip = (e) => {
tooltip.classList.remove('show');
};
const attachListeners = (observeable) => {
observeable.addEventListener('mouseenter', showTooltip);
observeable.addEventListener('mouseleave', hideTooltip);
}
document.querySelectorAll('.observeable').forEach(attachListeners);
.tooltip {
display: none;
position: absolute;
border: thin solid #000;
padding: 0.5em;
background: rgba(0, 0, 0, 0.66);
color: #FFF;
white-space: pre;
font-family: monospace;
}
.show {
display: block;
}
<div class="tooltip">Hello World</div>
<select class="observeable">
<option value="apple">One</option>
<option value="banana">Two</option>
<option value="carrot">Three</option>
<option value="date">Four</option>
<option value="eggplant">Five</option>
</select>
我有一个 select 框,我用 javascript 动态创建我想在结束时添加一个工具提示 将鼠标移到 selected 选项上,它只会给我该选项的文本值。
这就是我创建 select 盒子的方式(简单)
var selectBoxDB = document.createElement("select");
selectBoxDB .classList.add("form-control");
selectBoxDB .id = "select_"+mydata["source_name"];
selectBoxDB .style.width = "300px";
td.appendChild(selectBoxDB );
for(var key in mydata.servers_list) {
if (dbEntry.servers_list.hasOwnProperty(key)) {
var option = new Option(key, key);
option.title = key;
selectBoxDB .appendChild(option);
}
}
如何在此处组合或附加 select 框创建时的功能
当鼠标悬停在 selected 选项上时,它会弹出工具提示?
您可以将全局鼠标 enter/leave 侦听器添加到 <select>
以显示包含当前值的工具提示。
const tooltip = document.querySelector('.tooltip');
const showTooltip = (e) => {
Object.assign(tooltip.style, {
top: `${e.clientY + 8}px`,
left: `${e.clientX + 8}px`
});
tooltip.innerHTML = JSON.stringify({
value: `${e.target.value}`,
text: `${e.target.selectedOptions[0].text}`
}, null, 2);
tooltip.classList.add('show');
e.target.setAttribute('title', e.target.selectedOptions[0].text);
};
const hideTooltip = (e) => {
tooltip.classList.remove('show');
};
const attachListeners = (observeable) => {
observeable.addEventListener('mouseenter', showTooltip);
observeable.addEventListener('mouseleave', hideTooltip);
}
document.querySelectorAll('.observeable').forEach(attachListeners);
.tooltip {
display: none;
position: absolute;
border: thin solid #000;
padding: 0.5em;
background: rgba(0, 0, 0, 0.66);
color: #FFF;
white-space: pre;
font-family: monospace;
}
.show {
display: block;
}
<div class="tooltip">Hello World</div>
<select class="observeable">
<option value="apple">One</option>
<option value="banana">Two</option>
<option value="carrot">Three</option>
<option value="date">Four</option>
<option value="eggplant">Five</option>
</select>