我有一个asp.net核心应用程序。
我正在使用切换开关元素:
!function(t){"use strict";function e(e,s){this.$element=t(e),this.options=t.extend({},this.defaults(),s),this.render()}e.VERSION="3.6.0",e.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"light",size:"normal",style:"",width:null,height:null},e.prototype.defaults=function(){return{on:this.$element.attr("data-on")||e.DEFAULTS.on,off:this.$element.attr("data-off")||e.DEFAULTS.off,onstyle:this.$element.attr("data-onstyle")||e.DEFAULTS.onstyle,offstyle:this.$element.attr("data-offstyle")||e.DEFAULTS.offstyle,size:this.$element.attr("data-size")||e.DEFAULTS.size,style:this.$element.attr("data-style")||e.DEFAULTS.style,width:this.$element.attr("data-width")||e.DEFAULTS.width,height:this.$element.attr("data-height")||e.DEFAULTS.height}},e.prototype.render=function(){this._onstyle="btn-"+this.options.onstyle,this._offstyle="btn-"+this.options.offstyle;var e="large"===this.options.size||"lg"===this.options.size?"btn-lg":"small"===this.options.size||"sm"===this.options.size?"btn-sm":"mini"===this.options.size||"xs"===this.options.size?"btn-xs":"",s=t('<label for="'+this.$element.prop("id")+'" class="btn">').html(this.options.on).addClass(this._onstyle+" "+e),o=t('<label for="'+this.$element.prop("id")+'" class="btn">').html(this.options.off).addClass(this._offstyle+" "+e),i=t('<span class="toggle-handle btn btn-light">').addClass(e),l=t('<div class="toggle-group">').append(s,o,i),n=t('<div class="toggle btn" data-toggle="toggle" role="button">').addClass(this.$element.prop("checked")?this._onstyle:this._offstyle+" off").addClass(e).addClass(this.options.style);this.$element.wrap(n),t.extend(this,{$toggle:this.$element.parent(),$toggleon:s,$toggleOff:o,$toggleGroup:l}),this.$toggle.append(l);var h=this.options.width||Math.max(s.outerWidth(),o.outerWidth())+i.outerWidth()/2,a=this.options.height||Math.max(s.outerHeight(),o.outerHeight());s.addClass("toggle-on"),o.addClass("toggle-off"),this.$toggle.css({width:h,height:a}),this.options.height&&(s.css("line-height",s.height()+"px"),o.css("line-height",o.height()+"px")),this.update(!0),this.trigger(!0)},e.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},e.prototype.on=function(t){if(this.$element.prop("disabled"))return!1;this.$toggle.removeclass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),t||this.trigger()},e.prototype.off=function(t){if(this.$element.prop("disabled"))return!1;this.$toggle.removeclass(this._onstyle).addClass(this._offstyle+" off"),!1),e.prototype.enable=function(){this.$toggle.removeclass("disabled"),this.$toggle.removeAttr("disabled"),this.$element.prop("disabled",!1)},e.prototype.disable=function(){this.$toggle.addClass("disabled"),this.$toggle.attr("disabled","disabled"),!0)},e.prototype.update=function(t){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on(t):this.off(t)},e.prototype.trigger=function(e){this.$element.off("change.bs.toggle"),e||this.$element.change(),this.$element.on("change.bs.toggle",t.proxy(function(){this.update()},this))},e.prototype.destroy=function(){this.$element.off("change.bs.toggle"),this.$toggleGroup.remove(),this.$element.removeData("bs.toggle"),this.$element.unwrap()};var s=t.fn.bootstrapToggle;t.fn.bootstrapToggle=function(s){var o=Array.prototype.slice.call(arguments,1)[0];return this.each(function(){var i=t(this),l=i.data("bs.toggle"),n="object"==typeof s&&s;l||i.data("bs.toggle",l=new e(this,n)),"string"==typeof s&&l[s]&&"boolean"==typeof o?l[s](o):"string"==typeof s&&l[s]&&l[s]()})},t.fn.bootstrapToggle.Constructor=e,t.fn.toggle.noConflict=function(){return t.fn.bootstrapToggle=s,this},t(function(){t("input[type=checkbox][data-toggle^=toggle]").bootstrapToggle()}),t(document).on("click.bs.toggle","div[data-toggle^=toggle]",function(e){t(this).find("input[type=checkbox]").bootstrapToggle("toggle"),e.preventDefault()})}(jQuery);
function append() {
$("#ulAvailableCameras").append(
"<li class='list-group-item' style='cursor: pointer; height: 54px;'>" +
"<div>" +
"<div style='width: 200px; float: left;'>Camera#1</div>" +
"<div style='cursor: pointer; width: 200px; float: right;'>" +
"<input id='chkCloudStatus1' type='checkbox' data-on='Cloud Service is On' data-off='Cloud Service is Off' " +
"data-width='200px;' checked data-toggle='toggle' data-onstyle='outline-success' data-offstyle='outline-secondary'>" +
"</div>" +
"</div>" +
"</li>");
}
.btn-group-xs>.btn,.btn-xs {
padding: .35rem .4rem .25rem .4rem;
font-size: .875rem;
line-height: .5;
border-radius: .2rem
}
.checkbox label .toggle,.checkbox-inline .toggle {
margin-left: -1.25rem;
margin-right: .35rem
}
.toggle {
position: relative;
overflow: hidden
}
.toggle.btn.btn-light,.toggle.btn.btn-outline-light {
border-color: rgba(0,.15)
}
.toggle input[type=checkbox] {
display: none
}
.toggle-group {
position: absolute;
width: 200%;
top: 0;
bottom: 0;
left: 0;
transition: left .35s;
-webkit-transition: left .35s;
-moz-user-select: none;
-webkit-user-select: none
}
.toggle-group label,.toggle-group span {
cursor: pointer
}
.toggle.off .toggle-group {
left: -100%
}
.toggle-on {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 50%;
margin: 0;
border: 0;
border-radius: 0
}
.toggle-off {
position: absolute;
top: 0;
bottom: 0;
left: 50%;
right: 0;
margin: 0;
border: 0;
border-radius: 0;
box-shadow: none
}
.toggle-handle {
position: relative;
margin: 0 auto;
padding-top: 0;
padding-bottom: 0;
height: 100%;
width: 0;
border-width: 0 1px;
background-color: #fff
}
.toggle.btn-outline-primary .toggle-handle {
background-color: var(--primary);
border-color: var(--primary)
}
.toggle.btn-outline-secondary .toggle-handle {
background-color: var(--secondary);
border-color: var(--secondary)
}
.toggle.btn-outline-success .toggle-handle {
background-color: var(--success);
border-color: var(--success)
}
.toggle.btn-outline-danger .toggle-handle {
background-color: var(--danger);
border-color: var(--danger)
}
.toggle.btn-outline-warning .toggle-handle {
background-color: var(--warning);
border-color: var(--warning)
}
.toggle.btn-outline-info .toggle-handle {
background-color: var(--info);
border-color: var(--info)
}
.toggle.btn-outline-light .toggle-handle {
background-color: var(--light);
border-color: var(--light)
}
.toggle.btn-outline-dark .toggle-handle {
background-color: var(--dark);
border-color: var(--dark)
}
.toggle[class*=btn-outline]:hover .toggle-handle {
background-color: var(--light);
opacity: .5
}
.toggle.btn {
min-width: 3.7rem;
min-height: 2.15rem
}
.toggle-on.btn {
padding-right: 1.5rem
}
.toggle-off.btn {
padding-left: 1.5rem
}
.toggle.btn-lg {
min-width: 5rem;
min-height: 2.815rem
}
.toggle-on.btn-lg {
padding-right: 2rem
}
.toggle-off.btn-lg {
padding-left: 2rem
}
.toggle-handle.btn-lg {
width: 2.5rem
}
.toggle.btn-sm {
min-width: 3.125rem;
min-height: 1.938rem
}
.toggle-on.btn-sm {
padding-right: 1rem
}
.toggle-off.btn-sm {
padding-left: 1rem
}
.toggle.btn-xs {
min-width: 2.19rem;
min-height: 1.375rem
}
.toggle-on.btn-xs {
padding-right: .8rem
}
.toggle-off.btn-xs {
padding-left: .8rem
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="ulAvailableCameras" class="listViews listViewIndent">
<li class='list-group-item' style='cursor: pointer; height: 54px;'>
<div>
<div style="width: 200px; float: left;">Camera#1</div>
<div style='cursor: pointer; width: 200px; float: right;'>
<input id="chkCloudStatus1" type="checkbox" data-on="Cloud Service is On" data-off="Cloud Service is Off" data-width="200px;" checked data-toggle="toggle" data-onstyle="outline-success" data-offstyle="outline-secondary">
</div>
</div>
</li>
</div>
<button onclick="append()">Add New</button>
这可以正确呈现。
如果我删除该列表项并通过JavaScript添加它,怎么办?
但这只是呈现正常的复选框吗?