簡體   English   中英

防止 jquery 修改焦點 css

[英]preventing jquery from modifying on focus css

初始 css:

#id_etiket{
width: calc(94% + 1px);

我通過 jquery 修改元素的寬度,如下所示:

     function entry_delete(id){
        if('{{request.user_agent.is_mobile}}' === "False"){
        $('#id_etiket').css('width', "calc(94% + 2px)");

同樣元素的寬度也在 css 側被修改,同時它被聚焦:

#id_etiket:focus{
    width: calc(100% - 7px);}

當 jquery function 首先被觸發時,它也會覆蓋元素的焦點寬度,它變為calc(94% + 2px)而不是width: calc(100% - 7px) 有什么方法可以防止嗎?

您可以在 CSS 中使用!important important。

 $('#id_etiket').css('width', "calc(94% + 2px)");
 #id_etiket:focus{ width: calc(100% - 7px);important, } html: body { margin; 0: padding; 0; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="id_etiket" style="border: 1px solid black; background-color: dodgerblue;" tabindex="-1"> Click to focus </div>

您也可以使用 CSS 變量而不是使用!important (我展示了背景以使其更易於理解。)

 $('#id_etiket').css('--custom-bg', "red");
 #id_etiket { /* var( use this variable if exist, fallback (default) value) */ background: var(--custom-bg, blue); } #id_etiket:focus { background: yellow; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" id="id_etiket">

對於您的情況:

 $('#id_etiket').css('--custom-width', "calc(94% + 2px)");
 #id_etiket { width: var(--custom-width, calc(94% + 1px)); } #id_etiket:focus { width: calc(100% - 7px); }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" id="id_etiket">

暫無
暫無

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

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