2016-12-26 13 views
0

私はRailsのでAJAXを経由して実行されます、次のスクリプトを持っている:jQueryの:チェック/チェックを外すDOM要素

をそれだけで最初に指定したオプション(チェックを外す)が動作することが表示されます、それ以外の文の内側部分はありませんうまくいかない!

<% if params[:type] == "switch" %> 
    var obj = $('.<%= params[:name] %> a:not(.label) #myonoffswitch:checkbox'); 
    <% if params[params[:name]] %> 
     obj.prop('checked', false); 
    <% else %> 
     obj.prop('checked', true); 
    <% end %> 
<% elsif params[:type] == "checkbox" %> 
    <% if params[params[:name]] %> 
     $('.<%= params[:name] %> a:not(.label)').remove(); 
     $('.<%= params[:name] %>').prepend("<a data-remote='true' href='/update?name=<%= params[:name] %>&amp;<%= params[:name] %>=true&amp;type=checkbox'><i class='icon ion-android-checkbox-outline-blank' tabindex='0'></i></a>"); 
     $('.<%= params[:name] %> a:not(.label) i').focus(); 
    <% else %> 
     $('.<%= params[:name] %> a:not(.label)').remove(); 
     $('.<%= params[:name] %>').prepend("<a data-remote='true' href='/update?name=<%= params[:name] %>&amp;<%= params[:name] %>=false&amp;type=checkbox'><i class='icon ion-android-checkbox' tabindex='0'></i></a>"); 
     $('.<%= params[:name] %> a:not(.label) i').focus(); 
    <% end %> 
<% end %> 

DOM

 <div class="name flex"> 
     <a data-remote="true" href="/update?name=name&amp;name=false&amp;type=switch"><div class="onoffswitch"> 
      <input checked="" class="onoffswitch-checkbox" id="myonoffswitch" name="onoffswitch" type="checkbox"> 
      <label class="onoffswitch-label" for="myonoffswitch"></label> 
     </div> 
     </a> 
     <div class="label"> 
      <a class="abc label" data-remote="true" href="/update?name=name&amp;name=false&amp;type=switch">ABC 
      </a> 
      <p class="abc labeltext">Lorem ipsum.</p> 
     </div> 
     </div> 

     <div class="name1 flex"><a data-remote="true" href="/update?name=name1&amp;name1=true&amp;type=checkbox"> 
     <i class="icon ion-android-checkbox-outline-blank" tabindex="0"></i></a> 

     <div class="label"> 
      <a class="abc label" data-remote="true" href="/update?name=name1&amp;name1=false&amp;type=checkbox">ABC 
      </a> 
      <p class="abc labeltext">Lorem ipsum.</p> 
     </div> 
     </div> 

はしかし、私は、チェックボックスやスイッチがチェックされている場合にのみ、それは未確認取得し、それがオフになっている場合、それは外観(DOMだ変更されないことに気づきました)。

私は間違っていますか?

答えて

1

:checked selectorを削除する必要があります。今のところ、あなたは唯一の私はまだスイッチをオフにするだけのことができるよcheckedチェックボックス

使用

var obj = $('.<%= params[:name] %> a:not(.label) #myonoffswitch:checkbox'); 

代わりの

var obj = $('.<%= params[:name] %> a:not(.label) #myonoffswitch:checkbox:checked'); 
+0

を得ている:/ – jonhue

+0

ノートのおかげで、しかし、それは間違いです! – jonhue

関連する問題