0
我已經得到了被Rails中通過AJAX執行下面的腳本:jQuery的:選中/取消選中DOM元素
看來,只有第一個指定的選項(取消選中)的作品,在else語句內的部分做不行!
<% 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] %>&<%= params[:name] %>=true&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] %>&<%= params[:name] %>=false&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&name=false&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&name=false&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&name1=true&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&name1=false&type=checkbox">ABC
</a>
<p class="abc labeltext">Lorem ipsum.</p>
</div>
</div>
不過,我注意到,只有當複選框或開關進行檢查它得到選中,如果沒有選中它不會改變它的外觀(的DOM )。
我在做什麼錯?
我還只是能取消開關:/ – jonhue
謝謝你的筆記,雖然,這是一個錯誤! – jonhue