2012-02-04 100 views
-3

此jQuery不起作用。我知道它看起来有些奇怪。但是,我怎样才能使它工作?onBlur和onFocus在单独的jQuery中

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

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

http://jsfiddle.net/7P5J8/

我必须删除内嵌的JavaScript?

+2

定义不工作,什么是你想达到什么目的? – 2012-02-04 23:34:56

+0

什么构成“工作”? – 2012-02-04 23:35:06

+0

如果这个工作正常,它会做什么? – sinemetu1 2012-02-04 23:36:07

回答

1

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

$("#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/

+0

这就是我一直在寻找的:http://jsfiddle.net/GhA2u/1/谢谢。 – henryaaron 2012-02-04 23:46:03

+0

这个答案在您的链接中断后无用。您应该在这里发布您的解决方案,而不是在另一个网站 – 2012-02-04 23:47:46

+1

@amnotiam。所以这家伙问题... ** =)**无论如何,我回答了下面的完整答案。 – gdoron 2012-02-04 23:49:16

0

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

0

我最好的猜测是内联函数首先运行,所以当字段为空并且单击时,它被设置为带有内联函数的内容。因此,无论如何,当调用jquery onblur时,该字段总是包含文本(因为即使它没有,并且调用onblur,内联函数也会在jquery运行之前添加文本)。

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

+0

基本上,如果字段中没有任何内容,就使用“模糊”,文本应该改变,文本颜色应该改变。在“焦点”上,如果字段中没有任何内容,文本应该改变,文本颜色应该改变。 – henryaaron 2012-02-04 23:43:59

+0

因此,如果他们在没有添加文字的情况下点击出来,它应该重新显示“搜索范围内”,但是显示不同的颜色? – Ben 2012-02-04 23:45:18

+0

是的12还有更多... – henryaaron 2012-02-04 23:46:33

2

,你将不得不删除内联代码,因为它的事件处理程序之前运行。
您应该只保留用于persing的HTML,所有放入<script>标签和.JS文件中的逻辑和JavaScript都更好。

fixed 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" />