У меня есть div, который добавлен в мой html с добавлением...
Затем я спрячу его с $('#'+q).hide();
где q
- имя переменной моего div.
это работает 100%.
При срабатывании я показываю div с $('#'+q).show();
, снова это работает на 100%, а div показан.
моя проблема в том, что когда я хочу снова скрыть его, $('#'+q).hide();
не работает. нет ошибок javascript, он просто не работает.
Сгенерированный html, когда показан div: <div id="30" class="form" style="display: block;">
Я пытаюсь скрыть этот div с помощью $('#'+q).hide();
где переменная q = 30. Я подтвердил значение q.
это не работает, html остается неизменным.
firebug выделяет html, когда $('#'+q).hide();
вызывается, но не меняет его, поэтому кажется, что он обновляется, просто неправильно.
любые идеи.
Спасибо, как всегда, приветствует
Попробуйте спрятаться по-другому.
$('#'+q).css('display','none');
.hide()
внутренне меняет display:none
свойство для display:block
. Так что если вы .hide()
не работают по какой-то причине, то вы можете попробовать код выше. То же самое верно и для.show(), т.е.
$('#'+q).css('display','block');
может использоваться для .show()
.
Сначала вы можете использовать плагин FireFox Web Developer для просмотра сгенерированного кода после его изменения JS/Jquery. Веб-разработчик Firefox
Легче использовать toggle() для отображения и скрытия элементов. Можете ли вы опубликовать код, который вызывает функции show() hide() для вашего элемента?
Я попытался воспроизвести некоторый код в следующем примере:
Существует блок div:
<div id="30" class="form" style="display: block;">I am there</div>
<button>Toggle</button>
И вы скрываете это:
$("#30").hide();
Затем вы можете переключаться с помощью кнопки:
$("button").click(function() {
$("#30").toggle();
});
Добавив div и кнопку в тело, код будет выглядеть так:
$("body").append('<div id="30" class="form" style="display: block;">I am there</div><button>Toggle</button>');
$("#30").hide();
$("button").click(function() {
$("#30").toggle();
});
Надеюсь это поможет.