I'm gonna go out on a branch here...
You're clicking on the menu id="dl-menu a" and you want the filter to be applied while at the same time the submenu to be displayed.
Did you try?
$('#dl-menu a').ready(function(e) {
var selector = $(this).attr('data-filter');
$container.isotope({ filter: selector });
$('.dl-submenu a').show();
e.preventDefault();
e.stopPropagation();
});
I am not sure how the filter applies to your sub-menu.
Edit.... try this:
$('#dl-menu-a').ready(function(e) {
var selector = $('.dl-submenu a').attr('data-filter');
$container.isotope({ filter: selector });
$('.dl-submenu a').show();
e.preventDefault();
e.stopPropagation();
});
Now the filter applies to the submenu attribute and not the menu.
Also I don't think it's good practice to have whietspace (dl-menu a) in your id. I modified it above in my example. It might simply be that whitespace that is your issue.
This thread clearly displays good naming convention What are valid values for the id attribute in HTML?