0

.closest を正しく適用する方法に苦労しています

一連の入力は、テニスのセットのスコアを記録するために使用されています。ユーザーが 7-6 または 6-7 の組み合わせを入力すると、非表示の div が表示され、タイブレークを記録できます。

現在の入力に最も近い非表示のタイブレーク div のみが表示されるようにします。

これが私がこれまでに持っているものです:

$(document).ready(function() {
                var div = $('.tiebreakfield');
                $('.score1, .score2').keyup(function() {
                    var value1 = parseInt($(".score1").val());
                    var value2 = parseInt($(".score2").val()); 
                   if ((value1 == 6 || value1 == 7) && (value2 == 6 || value2 == 7) && (value1 !== value2)) {
                        div.fadeIn();
                    } else {
                        div.fadeOut();   
                    }
                });
            });

$(document).ready(function() {
                var div = $('.tiebreakfield');
                $('.score3, .score4').keyup(function() {
                    var value1 = parseInt($(".score3").val());
                    var value2 = parseInt($(".score4").val()); 
                   if ((value1 == 6 || value1 == 7) && (value2 == 6 || value2 == 7) && (value1 !== value2)) {
                        div.fadeIn();
                    } else {
                        div.fadeOut();   
                    }
                });
            });

上記のコードは、7-6 コンボが入力された場合、すべての非表示の div を表示します。

ここに例があります... http://jsfiddle.net/jQHDR/

4

2 に答える 2

1
  1. 2 は必要ありませんready()
  2. クラスを持つ要素は で.tiebreakfieldはありませんdiv

私があなたの問題をよく理解していれば、これはあなたが必要とするコードの例だと思います:

                $('.score1, .score2').keyup(function() {
                var element = $(this).parent().siblings(".tiebreakfield");
                var value1 = parseInt($(".score1").val());
                var value2 = parseInt($(".score2").val()); 
               if ((value1 == 6 || value1 == 7) && (value2 == 6 || value2 == 7) && (value1 !== value2)) {
                    element .fadeIn();
                } else {
                    element .fadeOut();   
                }
            });

デモ: http://jsfiddle.net/vTQr6/

于 2013-07-25T18:48:14.763 に答える