首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JQuery \ Watermark更改css类

使用JQuery \ Watermark更改css类
EN

Stack Overflow用户
提问于 2010-08-31 22:12:58
回答 5查看 2K关注 0票数 1

我的应用程序试图在表单的文本框中显示文本水印,但我不想触及框的实际值。所以,我尝试使用一个带有水印文本的背景图像,使用类;

代码语言:javascript
复制
    .watermarkon input
   {
        background-image: url('../forms/images/TypeNameWatermark.png');
        background-repeat:no-repeat;
   }

    .watermarkoff input
   {
        background-image: none;
   }

我在表单中设置了textboxes CssClass="watermarkon“,当这样的元素被单击时,我想删除"watermarkon”并替换为"watermarkoff“,甚至只是删除现有的类。我尝试了大量不同的语法,虽然我可以很好地捕获click事件,但页面似乎从未更新过元素的CSS。这是我最新的尝试:

代码语言:javascript
复制
     jQuery(document).ready(
         function() {
             jQuery(".watermarkon input").click(function(event) {
                 jQuery(this).removeClass("watermarkon").addClass("watermarkoff");

             });
         }
     );

谁能告诉我我错过了什么--为什么我似乎不能得到CSS的变化来更新动态网页?

提前感谢!

EN

回答 5

Stack Overflow用户

发布于 2010-08-31 22:16:32

你的选择器是错的

代码语言:javascript
复制
 jQuery(document).ready(
     function() {
         jQuery("input.watermarkon").click(function(event) {
             jQuery(this).removeClass("watermarkon").addClass("watermarkoff");

         });
     }
 );
票数 1
EN

Stack Overflow用户

发布于 2010-08-31 22:17:32

由于类直接位于文本框中,因此您的CSS选择器应该将类放在input上,而不是将<input>元素作为子元素,因此将它们更改为:

代码语言:javascript
复制
input.watermarkon
//and...
input.watermarkoff

与之匹配的更简化的jQuery:

代码语言:javascript
复制
jQuery("input.watermarkon").bind("blur focus", function() {
  jQuery(this).toggleClass("watermarkon watermarkoff");
});

您通常希望更改focusblur上的水印样式,而不是单击(带有额外的检查,这取决于您要做的事情)。这将在聚焦时将类更改为watermarkoff,并在使用.toggleClass()交换类时恢复模糊时的watermarkon

票数 1
EN

Stack Overflow用户

发布于 2010-08-31 22:23:13

使用选择器.watermarkon input,您可以尝试选择具有类watermarkon的另一个元素中的所有输入元素。

此外,如果删除了类watermarkon,则不能使用包含.watermarkon的选择器再次选择该元素。

所以试着这样做:

HTML:

代码语言:javascript
复制
<input type="text" class="watermark"/>

CSS:

代码语言:javascript
复制
.watermark {
    background-image: url('../forms/images/TypeNameWatermark.png'); 
    background-repeat:no-repeat;
}

jQuery:

代码语言:javascript
复制
$('input').click(function() {
    $(this).removeClass('watermark');
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3609851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档