I'm trying to use javascript to create small dialogue boxes which will advise the user how to enter data into a field when they hover over them. I'm extremely new to using javascript so I could be going about this completely the wrong way. Below is my code:
HTML
<html>
<body>
<div>
<button id="button" onmouseover="mOver(this)" onmouseout="mOut(this)">?</button>
</div>
<script>
function mOver(obj)
{
obj.innerHTML="<div id='help_container'><button id='close'>X</button><p id='help_text'>Help Text</p></div>"
}
function mOut(obj)
{
obj.innerHTML="<button id='button' onmouseover='mOver(this)' onmouseout='mOut(this)'>?</button>"
}
</script>
</script>
</body>
<style type="text/css">
#button {
border-radius: 50%;
border: 1px solid black;
padding-top: 3px;
padding-bottom: 3px;
}
#info {
margin-left: 5%;
}
#help_container {
border: 0.5px solid black;
background-color: #efefef;
width: 20%;
}
#close {
float: right;
margin-top: 1%;
background-color: #efefef;
border: 0px solid #efefef;
}
#help_text {
margin: 5%;
font-family: Arial;
font-size: 15px;
}
</style>
</html>
However the function is not working, changes do happen when hovering over and away from the button
tag but not the changes I had expected. I was hoping a small div
would appear with help text written inside. Ideally I would also like to have a close button appear within the div
that could call a function onclick
and remove the div
but I am unsure how to remove elements using the onlick
method.
Any help on how to solve the onmouseover
function or how to implement a way of closing the div
using onlick
would be greatly appreciated.
Thanks in advance
You can use bootstrap, or any other javascript libraries, along with jQuery for the same purpose. Its better to use them, Please have a look at,
HTML
Script
You can use CSS and html only..
CSS:
HTML:
with your code, you operate with button, not div. to affect on div with
innerHTML
you need something like this:to make X button work, use this:
I don't think your js function has anything wrong, but your html structure is really in a mess. I changed the structure of your HTML and realize the function you what with the same code you provide.