I have some functions to toggle 2 parts of an HTML if I click the ‘rejt‘ button. Normally it looks like this:

But after using the button to toggle it back again, it gets disorted like this:

Please help me fix this.
Code sample:
function bottom() {
var value = $('#toggle').attr('value');
$('#bottomtext1').toggle('slow');
$('#bottomtext2').toggle('slow');
if (value == 'rejt'){
$('toggle').attr('value', 'mutat');
}
else if (value == 'mutat') {
$('toggle').attr('value', 'rejt');
}
};<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <id id="bottomtext1" style="display:none;">stuff1</id> <input type="button" value="rejt" id="toggle" onclick="bottom();"> <id id="bottomtext2" style="display:none;">stuff2</id>
Advertisement
Answer
First of all, what’s with the font and id tags? Not sure what jQuery is going to do when toggling a tag it knows nothing about (id).
More importantly, these id tags are set to display:inline-block after the toggle, such as:
<id id="bottomtext2" style="display:inline-block" />
That element is adjacent to <id id="bottomtext2" />, also set to inline-block. This would explain the side-by-side display.
Broken Fiddle: http://jsfiddle.net/T8aWV/1/
Fixed Fiddle: http://jsfiddle.net/T8aWV/
Get rid of the id tags and make them divs. This fixed the problem for me.
See also: “Periodic Table” of HTML 5 tags (and when to use them)