2012-02-04 91 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" />