簡體   English   中英

如何使jQuery的$(元素).css()持久的效果?

[英]How to make the effects of jQuery's $(element).css() persistent?

例如,使用字體大小的切換器/按鈕,如果我使用

    $('#container p').css('font-size', '24px');

它按預期工作,但如果我稍后將段元素添加到容器(通過ajax等),它們不會使用更新的字體大小設置樣式。 我知道這是.css()方法的預期行為。 我只想問:

更改CSS選擇器的樣式以及使這些樣式持久化的正確方法是什么?

是的,當你執行該命令時,它會在#container所有p元素的樣式。 如果您希望它是永久性的,您可以創建一個<style />元素並在那里添加CSS樣式。


詳細說明,你可以這樣做:

$(document.head).append('<style>#container p{font-size: 24px;}</style>');

jQuery在該行中的作用相當於:

<div id='container'>
  <p style='font-size:24px'>a</p>
  <p style='font-size:24px'>b</p>
  <p style='font-size:24px'>c</p>
</div>

對於您的特定情況,我會得到文檔中的一個樣式表,如下所示:

var stylesheets = document.styleSheets

返回包含insertRule方法的styleSheet 對象數組,您可以使用該方法添加新的(永久)css規則。

干杯!

您不能直接使用JavaScript添加樣式,但是您可以這樣做:

<div id="wrapper">
  <div id="paragraph1">blah</div>
  <div id="paragraph2">you</div>
</div>

$("#wrapper").css...

這樣,您添加到包裝器的任何段落都將具有新的字體大小...

那么你只是為現有元素添加樣式,jquery無法知道新元素。

問題可能在於你正在摧毀你擁有風格的元素。

如果您通過AJAX引入#container的替代品,那么所有內容都將被銷毀並替換為新內容。 您添加樣式的所有<p>標記將不再存在,並且需要在較新的條目上重復。

你可以嘗試的是動態創建一個類定義

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM