0
星期

丹麦克朗

" id="radio2" value="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)");

             });

出现故障..我的意思是代码 inst' 工作在所有.. 任何人都可以帮助我吗?谢谢你


我已经尝试了这两个:

$("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>
4

3 回答 3

3

我看到的第一个直接问题是您的 jQuery});在它的末尾缺少 a ,除非您忘记将其粘贴到那里。除了抛出错误之外,这将阻止它做任何事情......

这是您之前尝试过的简化版本。它至少可以使调试稍微容易一些。

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

虽然,我认为您之前尝试的内容没有任何明显错误,这让我想知道是否$("input")与您认为的相符。我可能至少会提醒您单击功能中的某些内容以进行完整性检查。实际上,我发现有几次我$(document).ready在我认为是之前就被解雇了,即在我的输入准备好之前,因为我的框架......

于 2009-09-09T17:36:54.610 回答
1

有几个问题:

  • 您正在使用Toggle和 Toggle 功能是:

如果它们被显示,toggle 使它们隐藏(使用 hide 方法)。如果它们被隐藏,则切换使它们显示(使用 show 方法)。

您应该询问是否检查了收音机

  • 您应该调用 each 函数,以更改其他无线电 div 值

  • 您应该调用该$(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>

注意:我使用背景颜色进行更好的测试,但是您对背景的使用很好。

于 2009-09-09T18:19:16.570 回答
0

您可能需要使用“背景图像”而不是“背景”来设置图像。

编辑:以为我之前在 jQuery 中的“背景”css 属性有问题,但是刚刚在各种浏览器上对其进行了测试,似乎我错了,或者自从我使用它以来它在 jQuery 版本中已修复。

于 2009-09-09T17:34:16.910 回答