2015-11-20 3 views
0

Я пытаюсь проверить, если переключить элемент имеет определенный класс или нет, и я не вижу, где эта проблема может приходит от:JQuery hasClass дать неправильный результат

<div class="tog"> 
    <div id="1" class="toggle toggle-light on"></div> 
</div> 
<div class="tog"> 
    <div id="2" class="toggle toggle-light on"></div> 
</div> 

<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script> 

и в JS :

$(document).ready(function() { 
    $(".myButton").on("click",function(){ 
     $('.tog').each(function(i, obj) { 
      var s = "yes"; 
      if ($(this).children("div").hasClass('toggle-off')) { 
       s = "no"; 
      } 

      console.log($(this).children("div").attr('class')); 
      console.log(obj.id+s); 
     }); 
    }); 

Результат (в Firebug консоли):

toggle toggle-light on 
1 yes 
toggle toggle-light on 
2 yes 

, но если я выключаю теперь тумблер:

  • в исходном коде, класс становится тонким «переключения-офф» (переключение становится серым): OK
  • , но я всегда получаю «тумблер выключенности света на»

Я не» я вообще не понимаю ... какая-то идея?

+3

Post код, перейти на "переключение-офф". –

+0

Как вы переключаетесь? –

+0

Я использую этот плагин: https://github.com/simontabor/jquery-toggles, я, вероятно, не использую его правильно – Julien

ответ

0

Я наконец нашел ответ:

$(".myButton").on("click",function(){ 
    $('.toggle').each(function(i, obj) { 
     console.log($(this).data('toggles').active); 
     //will show true or false depending the toggle is active or not 
    }); 
}); 
Смежные вопросы