как проверить скрыт/отображается объект?
jQuery.fn.toggle = function(){ this.each(function(){ var me = jQuery(this); me.prepend( jQuery('<span>↑ </span><span class="error">Ошибка: </span>') ); me.css('cursor', 'pointer').bind('click', function(e){ //alert(me.attr('idd')); var p13_lh14 = $('div.p13_lh14:has(textarea#'+me.attr('idd')+')'); p13_lh14.slideToggle('fast', function(){ if($(p13_lh14+':hidden')){ me.find('span:first').html('<span>↓ </span>'); }else{ me.find('span:first').html('<span>↑ </span>'); } }); }); }); return false; } $(document).ready(function(){ $('textarea').resizer(); $('h1').toggle(); $('h1 span.error').hide(); }); вот тут участок с if - как правильно его сделать? если такое, или приписывать скрытому блоку какойнить атрибут и потом по нему проверять? |
function noviewinput (id) { $("#"+id).css({display: ""}); $("#in"+id).css({display: "none"}); } а если так скрывать? при анимации моно прозрачность в 0 свести и тоже будет скрыт. |
ну конено в переменную вносить скрыт или открыт.
или смотреть что в дисплей стоит. |
SDone,
просто делаю все в одной функции, смысл еще одни функции делать? или это для примера? не совсем понял зачем "#in"+id...пока, решил так: h1.bind('click', function(){ p13_lh14.slideToggle('fast', function(){ if(p13_lh14.data('show')){ p13_lh14.data('show', 0); h1.find('span:first').html('<span>↓ </span>'); }else{ p13_lh14.data('show', 1); h1.find('span:first').html('<span>↑ </span>'); } }); }); в js это нормально или лучше по другому? |
"#in"+id - да это просто пример. показать как с див работать.
если пашет так то че и менять? Иногда не до красоты. :victory: |
Цитата:
if( p13_lh14.style.display == 'none' ) ... (если оно изменяется в процессе) |
"По-джикверевски" :) наверное так:
$('#myid').is(':hidden') Вот это: if($(p13_lh14+':hidden'))работать будет всегда, даже если не найдется элемент -- jquery ведь возвращает объект, даже если ничего не нашло, а проверить, попалось ли что-то, можно через метод size: if($(p13_lh14+':hidden').size()){...} |
SDone,
x-yuri, e1f, Благодарю! Классно, вчера весь день колопатил мануалы и 0 результат ) Сегодня прям прорыв - уже начинается нравится js, который до этого обходил стороной )) if($(p13_lh14+':hidden').size()){...} а в смысле? ...зачем и что проверять? |
if($(p13_lh14+':hidden')) а почему у меня не работает? Объект всегда возвращается, потому всегда true будет. Am I wrong? и непонятно, что такое p13_lh14+':hidden'... в p13_lh14 должно быть '#myid'? if($(p13_lh14+':hidden').size()){...} проверка отображается ли элемент... в p13_lh14 должно быть '#myid' как я понял, ну т.е. можно так if($('#myid:hidden').size()){...} |
Цитата:
var p13_lh14 = $(this).find('div.p13_lh14'); |
у меня так же:
Цитата:
|
var p13_lh14 = $(this).find('div.p13_lh14'); т.е. в p13_lh14 может быть несколько элементов? Может в этом случае лушче id воспользоваться? $('#idOfElement') |
по структуре у меня может быть только 1 div.p13_lh14
и только в одном блоке много, и поэтому ищу так: var p13_lh14 = $(this).find('div.p13_lh14:first'); просто так минимизируется html...хотя мелочь конечно.. |
Тогда и не должно работать, что такое конкатенация строки и объекта jquery? Тогда делайте так:
if(p13_lh14.is(':hidden')){...} |
Благодраю - работает!
Вопрос решен! |
Часовой пояс GMT +3, время: 16:27. |