Running into a bit of a funny problem. I have each day of the week hidden upon entry to my html (class="day"
). By clicking on the Day, it expands to show everything under that day, by an AJAX call with $.post
. This is all working well.
I figure the user may want to look at the whole week at once, so I have a button (id="expander"
) to show everything. However, when I call the function getSchedule()
from within the #expander
click, it loops through everything except the $.post
in the getSchedule()
function. Then it loops through the $.post
.
$(document).ready(function()
{
$('.day').click(function(){
pass = $(this).prop('id');
getSchedule(pass);
});
$('#expander').click(function(ex){
$('.day').each(function(index){
pass = $(this).prop('id');
getSchedule(pass);
});
$('#expander').text('Hide All Days');
ex.preventDefault();
return false;
});
});
function getSchedule(elementid){
dow = elementid.substr(-1);
url = "standarddayofweek.php?d="+dow;
$theday = $("#"+elementid);
console.log("The day is "+$theday.prop('id'));
$.post(url,function(data){
$theday.children('.dayschedule').html(data);
}, "html"
)
}
The console response I get is:
The day is d1
The day is d2
The day is d3
The day is d4
The day is d5
The day is d6
The day is d7
XHR finished loading: "http://127.0.0.1/standarddayofweek.php?d=1"
In the post function, the day is d7
XHR finished loading: "http://127.0.0.1/standarddayofweek.php?d=2"
In the post function, the day is d7
XHR finished loading: "http://127.0.0.1/standarddayofweek.php?d=3"
In the post function, the day is d7
XHR finished loading: "http://127.0.0.1/standarddayofweek.php?d=4"
In the post function, the day is d7
XHR finished loading: "http://127.0.0.1/standarddayofweek.php?d=5"
In the post function, the day is d7
XHR finished loading: "http://127.0.0.1/standarddayofweek.php?d=6"
In the post function, the day is d7
XHR finished loading: "http://127.0.0.1/standarddayofweek.php?d=7"
In the post function, the day is d7
The watered down HTML:
<div id="expander">Click me to expand</div>
<div id="d1" class="day">
<div class="dayschedule"></div>
</div>
<div id="d2" class="day">
<div class="dayschedule"></div>
</div>
....
<div id="d7" class="day">
<div class="dayschedule"></div>
</div>
What is going on? I have tried adding a delay, to see if the AJAX was happening too fast, but nothing changed.