0

現在、9 つのボタンがある小さなページがあります。4 人が 1 つのクラスに割り当てられ、5 人が別のクラスに割り当てられます。ページの存続期間中、5 の値は 2 つの値のいずれかに変化する可能性があります。同じクラスの 5 つのボタンの値をチェックする if in jQuery ステートメントを作成したいと思います。それらの値がすべて 1 つに等しい場合、関数が起動されます。

関数は機能していますが、条件文の作成に問題があります。

編集:すべてのコードを実際に提供することはできません。ページ全体を占有します。監視したいボタンは次のとおりです。

<input id="link1" type="button" value="[+] Expand" onclick="toggleVisibility('table1', 'link1')" class="expander" />
<input id="link2" type="button" value="[+] Expand" onclick="toggleVisibility('table2', 'link2')" class="expander" />
<input id="link3" type="button" value="[+] Expand" onclick="toggleVisibility('table3', 'link3')" class="expander" />
<input id="link4" type="button" value="[+] Expand" onclick="toggleVisibility('table4', 'link4')" class="expander" />
<input id="link5" type="button" value="[+] Expand" onclick="toggleVisibility('table5', 'link5')" class="expander" />

これら5つのボタンの値がすべて「[+]展開」の場合に起動したいjQuery関数は次のとおりです

function () { $("#bottom-wrap").addClass("absolute-bottom") }
4

4 に答える 4

1

同じクラスのボタンが 5 つしかなく、5 つすべてが同じ値であるかどうかを確認したい場合は、次のようにすることができます。

var elem = $(".expander"); 

elem.on('change', function() {
    if ( elem.filter("[value='[+] Expand']").length == elem.length)
        $("#bottom-wrap").addClass("absolute-bottom");
});​

フィドル

于 2012-08-28T18:34:56.833 に答える
0
var first,
    same = true;

$('.class').each(function(index, element) {
    if (index == 0) first = $(this).val();
    else {
        if (first != $(this).val()) {
            same = false;
            return false;
        }
    }
});

if (same) func();
于 2012-08-28T18:45:57.253 に答える
0

要素のいずれかが更新されるたびに、要素の値を確認する必要があります。次の関数は、あなたが望むものを与えるはずです:

function buttonClassMatches(){
var firstClass;
var sameClass = true;
$('input[type="button"]').each(function(){
if(firstClass == null){firstClass = $(this).attr("class");}
if(firstClass != $(this).attr("class")){sameClass = false;}
});
if(sameClass){doYourFunction();}
}
于 2012-08-28T18:24:19.473 に答える
0

これは試行です。わずかな変更が必要になる場合があります。jsFiddle などを提供していただければ、正しく動作することを確認できます。

$(".fiveClass").change(function(){ //Add an event handler to jQuery's change event
   var allSame = true;
   var first;
   $(".fiveClass").each(function(){ //Check each element with the class "fiveClass"
      if( typeof first == "undefined" ){
          first = $(this).val();//could also try .text() depending on type of DOM node
      }
      allSame = allSame && (first === $(this).text());
   }
   if( allSame ){
      //do something.
   }
}
于 2012-08-28T18:42:15.417 に答える