Jquery 如何单击克隆标签并将checkbox checked属性更改为false&;单击复选框并删除克隆
我有一个搜索过滤器,我需要修改。应该发生的是,当您单击过滤器(复选框和单选按钮)时,相应标签的克隆会在标题部分中得到输出。然后,再次单击复选框或单选按钮时,标签应消失。克隆标签也是如此。删除此复选框时,复选框的属性应更改为未选中 两个并发症。1) 任何解决方案都必须使用jQuery 1.7(2)页面上正在使用AJAX。为了避免出现奇怪的情况(例如,首次打开后立即再次触发滑动切换),我使用了Jquery 如何单击克隆标签并将checkbox checked属性更改为false&;单击复选框并删除克隆,jquery,checkbox,clone,Jquery,Checkbox,Clone,我有一个搜索过滤器,我需要修改。应该发生的是,当您单击过滤器(复选框和单选按钮)时,相应标签的克隆会在标题部分中得到输出。然后,再次单击复选框或单选按钮时,标签应消失。克隆标签也是如此。删除此复选框时,复选框的属性应更改为未选中 两个并发症。1) 任何解决方案都必须使用jQuery 1.7(2)页面上正在使用AJAX。为了避免出现奇怪的情况(例如,首次打开后立即再次触发滑动切换),我使用了.one(),但这会导致克隆只创建一次 所以我有两个问题。单击克隆时如何删除复选框上的checked属性,反
.one()
,但这会导致克隆只创建一次
所以我有两个问题。单击克隆时如何删除复选框上的checked属性,反之亦然
$("section label").one("click", function() {
var clonedContent = $(this)
.first()
.clone()
.children()
.end()
.addClass("clone");
$("header").append(clonedContent).addClass("clone");
});
$("header").on("click", ".clone", function() {
var forAttr = $(this).attr("for");
console.log(forAttr);
// $(this).parents(".wrap").find(forAttr).removeClass("is-checked").siblings('input').prop('checked',false);
$(this)
.remove()
.parents(".wrap")
.find("section label")
.removeClass("is-checked");
});
$("section label").click(function() {
$(this).toggleClass("is-checked");
});
label for=“one”
时,相应的输入应具有id=“one”
。否则,标签将不会按预期更改输入的状态
<div class="wrap">
<header></header>
<form>
<div class="label-wrap"><label for="one">Checkbox 1</label><input id="one" type="checkbox" /></div>
<div class="label-wrap"><label for="two">Checkbox 2</label><input id="two" type="checkbox" /></div>
<div class="label-wrap"><label for="three">Checkbox 3</label><input id="three" type="checkbox" /></div>
<p>note that <input> will be hidden eventually and replaced with a toggled :before</p>
</form>
</div>
$('input').on('change', function() {
var self = $(this);
if(self.is(':checked')) {
self.prev('label').clone().addClass("clone")
.appendTo("header");
self.prev('label').addClass("is-checked");
} else {
$('header label[for="' + self.attr('id') + '"]').replaceWith('');
self.prev('label').removeClass("is-checked");
}
});
复选框1
复选框2
复选框3
请注意,输入最终将被隐藏并替换为切换的:before
$('input')。在('change',function()上{
var self=$(这是);
if(self.is(':checked')){
self.prev('label').clone().addClass(“克隆”)
.附录(“标题”);
self.prev('label').addClass('is checked');
}否则{
$('header label[for=“”+self.attr('id')+”).replacetwith(“”);
self.prev('label').removeClass('is checked');
}
});
哦!这是一个非常聪明的方法。谢谢:D