Here’s my code:
$('ul.container_12 li ul li div ul li.icon_export').click(function (e) {
e.preventDefault();
var anchorHrefValue2 = $('a', this).attr('href');
var mycat2 = $(this).parents('li.current').attr('class').split(' ')[0];
window.location = anchorHrefValue2+"?active="+mycat2;
});
When I click menu in Firefox seems like variable anchorHrefValue2 is undefined, if I add alert('somthing'); between lines 3 and 4 anchorHrefValue2 returns the right value and mycat2 returns the value menu! Which I don’t know where the hell it comes from.
both variables has been set correctly but not together.
Both return the right value using alert(); but seems to be undefined calling in the line: window.location=...;.
If anyone has experienced anything close to this, please share. I’ve tested this in different browsers with JavaScript enabled.
By the way, I have another function like this for parent menus with the same goal which works just fine(only selectors are different with the first one):
$('ul.container_12 li ul li').click(function (e) {
e.preventDefault();
var anchorHrefValue = $('a', this).attr('href');
var mycat = $(this).parent().parent().attr('class').split(' ')[0];
window.location = anchorHrefValue+"?active="+mycat;
});
When I had a similar weird bug that went away when I added an alert box, it turned out that the same event (a div losing focus) was triggering two different javascripts. (I guess adding the alert gave one script a chance to complete before the other was triggered). So asynchronous behaviour as CamelCamelCamel said above, but you can get (unwanted) asynchronous behaviour even if there is no server-side code. Hope that helps someone out.