2011-12-20 2 views
0

Я использую jQuery для расчета масок высвечивания для элементов DOM для webapp с редактированием на странице. Поскольку элементы могут изменять размеры, маска рассчитывается динамически при наведении.Игнорирование переполнения: скрытые элементы в jQuery

Один из элементов - это скроллер изображений, поэтому он имеет переполнение: скрыт с изображениями в дополнительном расширенном div. Проблема, с которой я сталкиваюсь, - это заставить jQuery игнорировать элементы с переполнением: скрытые в расчетах ширины и высоты.

Вкратце: существует ли селектор jQuery для игнорирования узлов DOM, скрытых переполнением?

ответ

1

вы можете создать cu льзовательская селектор JQuery, как even или odd и вы можете назвать его notOverflowHidden

$.expr[':'].notOverflowHidden = function(obj){ 
    return ($(obj).css('overflow') !== 'hidden'); 
}; 

и вы можете получить набор узлов с переливной свойством не спрятался, как так:

$('div:notOverflowHidden').each(...); 
+0

Хотя другие ответы в порядке, это обеспечивает необходимую сложность и является самым простым в использовании с моим существующим кодом. Благодаря! – Kidra

0

Живая демо: http://jsfiddle.net/ZYP8Z/

//for example I am selecting divs 
$(function(){ 
    $('div').each(function(){ 
     if($(this).css('overflow')!='hidden') 
      alert($(this).html()); //your action 
    }); 
}); 
0

Да, есть ...

$("*").each(function(){ 
//only pick those element from DOM whose css has overflow not equal to hidden 
if($(this).css("overflow") != "hidden"){ 
    //do your logic 
} 
}); 

Для более JQuery селекторы, пожалуйста, обратитесь к следующей ссылке

http://api.jquery.com/category/selectors/

Смежные вопросы