-3

这个 jQuery 不工作。我知道这看起来有点奇怪。但是我怎样才能让它工作呢?

JavaScript 部分中的 CSS 修改不起作用。在 .blur 上,如果字段中没有任何内容,则 jQuery 应该更改文本框的颜色。

如果该blur字段中没有任何内容,则文本应更改并且文本颜色应更改。如果字段中focus有“搜索范围”,则文本应更改并且文本颜色应更改。

http://jsfiddle.net/7P5J8/

我必须删除内联 JavaScript 吗?

4

4 回答 4

2

试试这个,看看它是否能解决问题:

$("#additionalsearch").focus(function(){
if (this.value == "Search Within")
{
    this.value = "";
    $(this).css('color','#000000');
 }
});

$("#additionalsearch").blur(function(){

        if (this.value == "")
        {
            this.value = "Search Within";
            $(this).css('color','#a9a9a9');
        }
    });

http://jsfiddle.net/GhA2u/

于 2012-02-04T23:44:19.563 回答
2

您将不得不删除内联代码,因为它在事件处理程序之前运行。
您应该只保留 HTML 以供个人使用,将所有逻辑和 JavaScript 放在<script>标签内和 .JS 文件中会更好。

修复了 JSFiddle

jQuery

$(document).ready(function() {
    $('input#additionalsearch').focus(function() {
        if (this.value === 'Search Within') {
            $(this).css('color', '#000000').val('');
        }
    });
    $('input#additionalsearch').blur(function() {
        if (this.value === '') {
            $(this).css('color', 'red').val('Search Within');
        }
    });
});

HTML

<input id="additionalsearch" type="text" value="Search Within" />
于 2012-02-04T23:45:09.267 回答
0

通过 Firebug 运行代码并查看 css 属性/属性是什么。内联应该覆盖 javascript 属性设置/css 样式属性,除非您使用重要!属性。

于 2012-02-04T23:39:26.100 回答
0

我最好的猜测是内联函数首先运行,所以当该字段为空白并且您单击时,它被设置为内联函数。所以不管怎样,当调用 jquery onblur 时,该字段中总是有文本(因为即使它没有并且调用了 onblur,内联函数也会在 jquery 运行之前添加文本)。

你能详细说明你想要发生什么吗?也许我可以帮忙。

于 2012-02-04T23:41:43.297 回答