jquery + div не будет правильно скрываться с помощью .hide (), когда имеет блок свойств?

0

У меня есть 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(); вызывается, но не меняет его, поэтому кажется, что он обновляется, просто неправильно.

любые идеи.

Спасибо, как всегда, приветствует

  • 0
    Похоже, проблема делегирования?
  • 0
    Можете ли вы показать свой код в контексте? В идеале, если бы вы могли уменьшить его до минимальной выборки, которая демонстрирует проблему на jsfiddle.net , которая действительно поможет нам помочь вам. «это не работает, HTML остается прежним» - Где вы смотрите на HTML? Браузер не обновляет HTML для страницы при внесении изменений, он обновляет DOM.
Теги:
hide

2 ответа

0

Попробуйте спрятаться по-другому.

$('#'+q).css('display','none');

.hide() внутренне меняет display:none свойство для display:block. Так что если вы .hide() не работают по какой-то причине, то вы можете попробовать код выше. То же самое верно и для.show(), т.е.

$('#'+q).css('display','block'); 

может использоваться для .show().

  • 0
    Пожалуйста, предоставьте немного больше деталей, например, почему это решает проблему, если возможно, с соответствующими ссылками на документацию.
  • 0
    Конечно, Арне. Спасибо за ваш комментарий.
Показать ещё 2 комментария
0

Сначала вы можете использовать плагин 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();
});

Надеюсь это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню