Пользование библиотекой Common должно быть прекрасным. Перечисления являются сериализуемыми, и атрибуты DataContract не нужны.
См.: http://msdn.microsoft.com/en-us/library/ms731923.aspx
Перечисляемые типы. Перечисления, включая перечисления флага, являются сериализуемыми. Дополнительно, перечисляемые типы могут быть отмечены с атрибутом DataContractAttribute, в этом случае каждый участник, который участвует в сериализации, должен быть отмечен с атрибутом EnumMemberAttribute
РЕДАКТИРОВАНИЕ: Несмотря на это, не должно быть никакой проблемы с маркировкой перечисления как DataContract и наличие клиентских библиотек с помощью него.
Вы хотите использовать селектор : not ()
:
jQuery(":not(.ignore)").bind("click", function(e) { ... });
Другой способ, если у вас уже есть селекторы для обоих:
$('.foo').not('.ignore').bind(...);
Кроме того, дополнительные фильтры .
jQuery not-selector спешит на помощь!
$('*:not(.ignore)').bind('click', function(e) { ... });
С другой стороны, делать что-либо одновременно с каждым элементом на странице - это противно. Есть способ получше. Я бы рекомендовал привязать к телу, а затем игнорировать щелчки по некоторым элементам:
$(document.body).click(function(e){
if($target.closest('.ignore').length) return true;
...
});
… Или использовать jQuery 1.3 .live ()
, который сделает это за вас:
$(":not(.ignore)").live(function(e){
...
});