0

我有两个 jQuery 脚本正在运行。其中一个有效,而另一个无效。它们本质上是同卵双胞胎,只是元素 ID 不同。我已经验证了 ID 是正确的。工作的双胞胎在上面,不起作用的双胞胎在下面。为什么它不起作用?这是在一个 jsFiddle 中。http://jsfiddle.net/TJonS/MR9mg/

            $('#Axiom-DAdjustableOA').click(function() {
                if ($(this).prop('checked')) {
                    $('#Short13').slideUp('fast');
                    $('#Standard15').slideUp('fast');
                    $('#Short14').slideUp('fast');
                    $('#Standard16').slideUp('fast');
                    $('#Short16').slideUp('fast');
                    $('#Standard17').slideUp('fast');
                    $('#Standard13').slideUp('fast');
                    $('#Extended15').slideUp('fast');
                    $('#Standard11').slideUp('fast');
                    $('#Extended13').slideUp('fast');
                    $('#DegreesOfOffset').slideDown('fast');
                } else {
                    $('#Short13').slideDown('fast');
                    $('#Standard15').slideDown('fast');
                    $('#Short14').slideDown('fast');
                    $('#Standard16').slideDown('fast');
                    $('#Short16').slideDown('fast');
                    $('#Standard17').slideDown('fast');
                    $('#Standard13').slideDown('fast');
                    $('#Extended15').slideDown('fast');
                    $('#Standard11').slideDown('fast');
                    $('#Extended13').slideDown('fast');
                    $('#DegreesOfOffset').slideDown('fast');
                }
            });


            $('#Duo').click(function() {
                if ($(this).prop('checked')) {
                    $('#Magnesium').slideUp('fast');
                    $('#Aluminum').slideUp('fast');
                    $('#Short14').slideUp('fast');
                    $('#Standard16').slideUp('fast');
                    $('#Short16').slideUp('fast');
                    $('#Standard17').slideUp('fast');
                    $('#Standard13').slideUp('fast');
                    $('#Extended15').slideUp('fast');
                    $('#Standard11').slideUp('fast');
                    $('#Extended13').slideUp('fast');
                    $('#DegreesOfOffset').slideUp('fast');
                } else {
                    $('#Magnesium').slideDown('fast');
                    $('#Aluminum').slideDown('fast');
                    $('#Short13').slideDown('fast');
                    $('#Standard15').slideDown('fast');
                    $('#Short14').slideDown('fast');
                    $('#Standard16').slideDown('fast');
                    $('#Short16').slideDown('fast');
                    $('#Standard17').slideDown('fast');
                    $('#Standard13').slideDown('fast');
                    $('#Extended15').slideDown('fast');
                    $('#Standard11').slideDown('fast');
                    $('#Extended13').slideDown('fast');
                    $('#DegreesOfOffset').slideDown('fast');
                }
            });
4

1 回答 1

1

要解决问题,您必须:

  • 首先清除缓存
  • 避免在 ID 中使用空格(例如#Z-12 OA),空格字符对 ID 属性无效
  • 避免在 ID 中使用点(例如 #20.50OA),或者您必须在 jQuery 选择器中转义它们

但是请考虑重构您的代码以使其更易于维护。

于 2013-08-24T19:19:18.893 回答