删除动态创建的页面元素
Removing dynamically created page elements
在这里查看小提琴中的行为。
$(document).ready(function () {
$('.tile').draggable();
$('.tile').on('dragstart', function () {
var numClones = $('.tile').length - 1
if (numClones > 0) {
//why can't I use fadeOut or empty here?
//make sure we don't remove the clone before it's made
$('.tile')[numClones].remove();
}
console.log(numClones);
var clone = $(this).clone();
clone.appendTo('body');
});
});
这允许用户在拖动事件上创建页面元素的克隆。 它还会删除以前的克隆。 在上面的注释行中,为什么当我尝试使用 fadeOut
从页面中删除div 时出现错误? 这是一个jQuery对象,对吧? 我收到错误Object #<HTMLDivElement has no method fadeOut
jQuery元素的索引访问器(这是get(index)
的简写)返回DOM元素。你正在寻找jQuery元素,在这种情况下你应该使用.eq(index)
(这个没有简写)。
remove()
工作的唯一原因是因为它也是一个 DOM 元素方法。
$('.tile').eq(numClones).fadeOut(function () {
// make sure the old clones get deleted, not just hidden
$(this).remove();
});
http://jsfiddle.net/2rnSk/1/
试试这个:
$($('.tile')[numClones]).fadeOut();
jQuery 对象伪装成其选择器匹配的元素数组。当您应用索引时,您返回的是一个HTMLDivElement
。但是,如果您将其包装在jQuery对象中,则应该能够毫无问题地应用fadeOut
。
相关文章:
- 将列表元素动态添加到ul元素中
- 将输入 html 元素动态关联到颜色选取器
- 媒体元素 - 动态加载音频
- 根据其内部元素动态更改 CSS
- 编写脚本以向元素动态添加.current(类似活动类)的场景
- 使用knockoutjs虚拟元素动态创建html部分
- 将JS中的元素动态添加到XUL中
- 如何从jquery中获得元素动态附加的完整表
- 使用jquery向li元素动态添加类
- 点击事件不't在尝试将元素动态添加到<ul>标签
- 使用Knockout.js Issue将元素动态添加到嵌套列表中
- 如何从DOM元素动态禁用popover
- 将样式元素动态插入DOM的最后一种跨浏览器方式
- 无法将元素动态添加到数组中
- 指令如何等待元素'动态插值属性被处理?
- 设置活动元素和非活动元素(动态)
- 是否可以使用JS/PHP为网页中的元素动态分配ID
- 如何制造<光>元素动态调整以填充浏览器窗口的整个宽度
- 基于页面元素动态构建菜单结构
- 向现有元素动态添加删除绑定