将复选框的值设置为“选中”,当附加到页面的另一部分时
Set value of a checkbox to "checked" when appending to another part of page
当单击页面上的复选框时,我会抓住它包含元素并将整个块附加到页面的另一部分。喜欢这个:
$('.favourite [type="checkbox"]').change(function () {
var check = $(this),
checked = $(check).attr("checked"),
id = $(check).attr("id").split("-")[1],
parent = $("#food-" + id),
parentContent = $("<div />").append($("#food-" + id).clone()).html(),
favelist = $(".favourites .content");
if (checked === "checked") {
$(favelist).append(parentContent);
}
});
我希望在将新复选框粘贴到收藏夹列表时选中它。我可以对parentContent做些什么 - 它包含复选框和周围元素的HTML块 - 以便在附加时已经选中它?
你不需要将
字符串附加到 favelist,你可以立即附加一个 jQuery 元素。通过这样做,将通过 DOM 设置的所有属性和样式都将保留,例如 checked
。
这意味着您可以同时删除$("<div />").append(
和).html()
。
生成的代码如下所示。
$('.favourite [type="checkbox"]').change(function () {
var check = $(this),
checked = $(check).attr("checked"),
id = $(check).attr("id").split("-")[1],
parent = $("#food-" + id),
parentContent = $("#food-" + id).clone(),
favelist = $(".favourites .content");
if (checked === "checked") {
$(favelist).append(parentContent);
}
});
它也会更快。
试试这个,
checked = this.checked,
或
checked = $(check).prop("checked"),
代替
checked = $(check).attr("checked"),
和编纂一样,
if (checked === true) {
$(favelist).append(parentContent);
}
完整代码,
$('.favourite [type="checkbox"]').change(function () {
var check = $(this),
checked = this.checked,
id = $(check).attr("id").split("-")[1],
parent = $("#food-" + id),
parentContent = $("<div />").append($("#food-" + id).clone()).html(),
favelist = $(".favourites .content");
if (checked === true) {
$(favelist).append(parentContent);
}
});
我会给这个老大学尝试......
$('.favourite').on('click','[type="checkbox"]',function(){
var chk = this.checked,
id = this.id.split("-")[1],
parent = $("#food-" + id),
parentContent = $("<div />").append($("#food-" + id).clone()).html(),
$favelist = $(this).find(".content");
if (chk === "checked") {
$favelist.append(parentContent).find('input[type="checkbox"]').prop('checked');
}
});
这增加了一些委派操作,并使用 checked
和 id
的原版 JS 版本来实现性能目的。它还消除了您使用favelist
进行的双重包装。
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 使用clickToggle并在单击另一个元素时关闭元素
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 如何在鼠标悬停时在另一个图像上滑动图像.
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 当点击另一件事时,将焦点设置为一件事
- 我正在创建一个聊天,但每次我发送消息时,它都不会让我再发送另一条消息,就像表格一样;不起作用
- 如何在单击按钮时显示一个分区,同时隐藏另一个分区
- 从另一个JSAppleScript运行另一个JS AppleScript时出现权限错误
- 将对象从另一个不可变的Map分配给Map是否意味着深度克隆
- 当我更新另一个作用域变量时,作用域变量会自动更新
- 当单元格内容由于forumula从另一个工作表编译数据而更改时发送电子邮件
- Javascript:当这个单词被点击5次时,下面会显示另一个单词
- 当uib分页被包装在另一个指令中时,AngularJS表数据没有更新
- 检测单击时另一个帧中存在的按钮
- 如何改变悬停时另一个链接的颜色
- 在OpenLayers中显示一部分层和另一部分层
- 如何触发两个函数,一个在页面重新加载/刷新时另一个
- ng-enter未在ui视图上触发,ui视图是页面刷新时另一个ui视图的子视图