2012-03-26 2 views
1

У меня есть div с идентификатором wildcard. Я хотел бы изменить отображение в шаблоне не фактического элемента.jquery change css property on wildcard

#mywildcard{ 
display:none; 
} 
<div id = "mywildcard"></div> 

Когда я нажимаю кнопку или что-то, что я хотел бы изменить, отображение фактического свойства не добавляет стиль к элементу.

Я хочу

#mywildcard{ 
display:block; 
} 

Что я получаю сейчас

<div id = "mywildcard" style="display:block"></div> 
#mywildcard{ 
display:block;//Firebug show crossed out. 
} 

Я попытался $('#mywildcard).css('display','block');, и он просто добавил стиль к этому элементу

+1

чем вопрос? – Christoph

ответ

3

Вы хотите использовать функцию jquery .toggle() или .show(), в зависимости от типа эффекта, который вы пытаетесь достичь.

Вызов .toggle() на элемент будет определять, отображается ли он none, после чего он вернется к дисплею по умолчанию. Если в данный момент отображается (display:block), то вызов .toggle() снова скроет элемент.

Если вместо этого вы хотите сделать однократное изменение от display:none до display:block, тогда вы захотите использовать функцию .show().

Чтобы уточнить, предположим, вы пытаетесь подключиться к функции .show(), чтобы сформировать кнопку с идентификатором wildcardShowBtn. Для достижения этой цели в Jquery вы могли бы сделать:

$("#wildcardShowBtn").click(function() { 
    $("#mywildcard").show(); 
}); 
+0

Это противоположность тому, что он просил. .show будет использовать атрибут стиля stye = "display: block", который он пытается избежать. – Fresheyeball

1

попробовать это (это звучит так это то, что вы хотите)

document.ge tElementById ('mywildcard'). setAttribute ('style', 'display: none;');

+0

Это противоположность тому, что он просил. Использование атрибута style stye = "display: block" - это именно то, что он сказал, что он не хочет. – Fresheyeball

1

Насколько я знаю, нет никакого способа, чтобы изменить правила CSS #wildcard из внешнего файла CSS, но вы можете это сделать, если его на странице в стиль тегов. Или, если вы мертвы, установив его во внешнем файле css, это все равно будет работать.

То, что вы хотите сделать, это изменить правило не элемент, поэтому целевой тег стиля вместо:

$('style[id=mystyle]').html($('style[id=mystyle]').html().replace('none','block'));` 

что-то, как это будет найти тег стиля и заменить экземпляры «ни», с «блока '

НО, если ваше правило находится во внешней таблице стилей, вы можете использовать js для создания нового тега стиля с правилом внутри него.

jQuery CSS - Write into the <style>-tag // второй ответ

http://www.webdeveloper.com/forum/archive/index.php/t-130717.html // учебник динамически создавая стили