Here is how I handle a similar situation:
jQuery('div').click(function () {
if (! (jQuery(this).hasClass('radio_tab'))) {
/* do something */
};
Here is exactly how I handle this on my site www.ipreferjim.com:
jQuery('div.nav_link').click(function () {
if (! (jQuery(this).hasClass('no_select'))) {
jQuery('div.nav_link').not(this).find('div.top_level').removeClass('nav_selected');
jQuery(this).find('div.top_level').addClass('nav_selected');
};
});
/* end div.nav_link .click */
jQuery('div.nav_link').hover(function () {
jQuery(this).find('div.top_level').fadeOut(100);
jQuery(this).find('div.top_level').fadeIn(300);
/* Show Sub-menu */
jQuery(this).find('.sub_level').show();
},
function () {
jQuery(this).find('.sub_level').hide();
});
/* end 'div.nav_link' .hover */
jQuery('div.sub_level a.dialog_link').click(function () {
if (jQuery(this).hasClass('get_json')) {
var json_link = 'retrieve.php?type=example&short_name=' + jQuery(this).attr('id') + '&format=json';
jQuery.getJSON(json_link, function (json) {
jQuery('.ui-dialog-title').text(json.title);
jQuery('.ui-dialog-content').html(json.html);
});
jQuery('#dialog').dialog('open');
return false;
};
/* end if */
});
/* end div.sub_level a.dialog_link .click */
Then, my links are set up using div elements with nested unordered lists.
<div class="nav_link">
<div class="top_level">Code</div><!-- end top_level -->
<div class="sub_level ui-corner-bottom">
<ul id="links">
<li><a href="?contentlink=assignments.php" id="assignments.php" class="navigation underline" onclick="javascript:showContent(this,'assignments.php')">Assignments</a>
</li>
<li>Snippets</li>
</ul>
</div><!-- end sub_level -->
</div><!-- end nav_link -->
It seems to be a very similar problem.