2009-09-09 73 views
0

DKKjquery切換背景?

「ID =」第二廣播電臺「 值=‘75’>

我有一串由while循環,所以我想實現這個生成的這些DIV進入/:裏面的時候進入輸入點擊我想要入口div的背景圖像進行更改,但是如果我在另一個入口div中選擇另一個無線電廣播,我想先前的所有更改(例如之前的背景更改)消失並更改當前div的背景..此處是我試圖做的也許你可以幫忙..這裏是jquery下面

$("input").click(function() { 

      $(this).parent("div").toggle(function() { 
      $(this).parent("div").css("background", "url(images/div_bg_hover.png)"); 
      }, function() { 
      $(this).parent("div").css("background", "url(images/div_bg.png)"); 

      }); 

東西有問題..我的意思是代碼安裝工作在任何地方..任何人都可以幫助我嗎?謝謝


我都試過這樣:

$("input").click(function() { 
       $("input").each(function() { 
        if (this.checked) { 
         $(this).parent("div").addClass("highlight"); 
        } 
        else { 
         $(this).parent("div").removeClass("highlight"); 
        } 
       }); 
      }); 

$("input").click(function() { 
       $("input").each(function() { 
        if (this.checked) { 
         $(this).parent("div").css("background", "url(images/div_bg_hover.png)"); 
        } 
        else { 
         $(this).parent("div").css("background", "url(images/div_bg.png)"); 
        } 
       }); 
      }); 

由於某種原因,它不工作不改變的背景下,也許它做一些事情用上面的代碼是完整的腳本:

<script type="text/javascript"> 

     $(document).ready(function() { 

      $(".left_navigation a:last").toggleClass('bolder'); 


      $("input").each(function() { 
       var element_value = $(this).val(); 
       $(this).prev("p").append(" " + element_value + ",-"); 
      }); 


      $("input").click(function() { 
       $("input").each(function() { 
        if (this.checked) { 
         $(this).parent("div").addClass("highlight"); 
        } 
        else { 
         $(this).parent("div").removeClass("highlight"); 
        } 
       }); 
      }); 




     }); 

</script> 

回答

3

我看到的第一個直接問題是,你的jQuery在它的結尾處缺少一個});,除非你忘記粘貼它。這將阻止它做任何事情,除了拋出一個錯誤...

這是你以前試過的簡化版本。它至少可以使調試更容易一些。

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("input").click(function() { 
     $("input").parent("div").removeClass("highlight"); 
     $(this).parent("div").addClass("highlight"); 
     }); 
    }); 
</script> 

雖然,我看不出有什麼明顯的錯誤你嘗試過什麼之前,這使我懷疑$("input")是匹配什麼,你認爲它是。我可能至少會提醒您點擊功能中的某些內容以進行理智檢查。其實我已經發現了幾次,在我以前的想法我輸入的準備,因爲我的框架,它即我$(document).ready被解僱......

+0

不存在缺少'});'和背景是一個完美有效的快捷方式 – 2009-09-09 18:22:01

+0

第一組javascript缺少});可能不是問題。只是沒有粘貼。愛德華多是正確的背景,雖然,這是一個有效的CSS速記,所以我編輯它... – 2009-09-09 19:35:04

+0

這個作品謝謝你,並感謝你的答覆! – ant 2009-09-09 20:22:50

0

您可能需要使用「背景圖像」而不是「背景」來設置圖像。

編輯:以爲我以前在jQuery中遇到過'background'css屬性的問題,但是剛剛在各種瀏覽器上測試過,似乎我錯了,或者因爲使用jQuery版本而被修復。

+0

這不是問題所在。背景是一個完全有效的快捷方式 – 2009-09-09 18:21:07

1

有幾個問題:您正在使用Toggle

  • 和切換功能是:

如果它們被示出,切換使得它們 隱藏(使用隱藏方法)。如果 它們被隱藏,則切換使它們顯示 (使用show方法)。

你應該問,如果無線電檢查

  • 你應該調用各項功能,以改變其它無線電格值

  • 你應該調用$(document).ready()功能

示例(警告:Javascript不是我最好的武器):

<script> 
$(document).ready(function(){ 
    $("input").click(function() { 
     $("input").each(function() { 
      if (this.checked) { 
       $(this).parent("div").css("background-color", "green") } 
      else { 
       $(this).parent("div").css("background-color", "red")} 
      }); 
     }); 
    }); 
</script> 

注:我用backgound色更好的測試,但你的背景的使用是不錯的。