首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当元素单击追加到div时,如果再次单击,则从该div中移除并将其返回到它所在的确切位置

这个需求可以通过JavaScript来实现。首先,我们需要给目标元素添加一个点击事件监听器。当元素被点击时,我们可以通过以下步骤来实现追加和移除操作:

  1. 获取目标元素的父元素(即div)和目标元素的初始位置信息(例如,top和left坐标)。
  2. 将目标元素从div中移除。
  3. 创建一个新的空的div,并将其位置设置为目标元素的初始位置。
  4. 将目标元素追加到新的div中。
  5. 将新的div追加到目标元素的初始位置所在的父元素中。

以下是一个示例代码:

代码语言:txt
复制
// 获取目标元素和其父元素
var targetElement = document.getElementById('targetElement');
var parentDiv = targetElement.parentNode;

// 获取目标元素的初始位置信息
var initialTop = targetElement.offsetTop;
var initialLeft = targetElement.offsetLeft;

// 点击事件监听器
targetElement.addEventListener('click', function() {
  // 如果目标元素已经在div中,则移除它并将其返回到初始位置
  if (targetElement.parentNode === parentDiv) {
    parentDiv.removeChild(targetElement);
    targetElement.style.top = initialTop + 'px';
    targetElement.style.left = initialLeft + 'px';
    document.body.appendChild(targetElement);
  } else {
    // 否则,将目标元素追加到div中
    parentDiv.appendChild(targetElement);
  }
});

这段代码会将目标元素追加到div中,并在再次点击时将其移除并返回到初始位置。请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行适当的修改和扩展。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。

  • 腾讯云云服务器(CVM):提供弹性计算能力,可根据业务需求快速创建、部署和扩展云服务器实例。了解更多信息,请访问:腾讯云云服务器
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的对象存储服务,可用于存储和管理各种类型的数据。了解更多信息,请访问:腾讯云对象存储

请注意,以上推荐的产品仅作为示例,实际选择应根据具体需求和情况进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WEB入门之十四 jQuery事件

当按下鼠标左键时记录鼠标位置作为起始位置;当鼠标移动时一直记录鼠标的当前位置;当松开鼠标左键时记录鼠标位置作为结束位置。...事件,在该事件中通过两个匿名函数控制类名是content的div,第一个函数控制该div显示,第二个函数控制该div隐藏。...div>div> 该示例与5.12差不多,只是由hover事件换成了toggle事件,当鼠标单击绿色的标题时,下面的内容就会显示出来;当鼠标再次单击绿色的标题时,下面的内容就会隐藏起来...我们给按钮绑定了鼠标单击事件,在该事件中主要实现动态生成行和单元格并添加到表中,同时给所有的行绑定了鼠标单击事件,用来实现背景色的改变。...添加过两个商品后,表格中一共有3行数据,第1行是原本存在的,后两行是动态创建并添加到表格上的。现在单击表格中的行,我们会发现只有第1行的背景色可以改变,后两行的背景色没有改变。

8110

WEB入门之十四 jQuery事件

当按下鼠标左键时记录鼠标位置作为起始位置;当鼠标移动时一直记录鼠标的当前位置;当松开鼠标左键时记录鼠标位置作为结束位置。...的div元素设置hover事件,在该事件中通过两个匿名函数控制类名是content的div,第一个函数控制该div显示,第二个函数控制该div隐藏。...div> div> 该示例与5.12差不多,只是由hover事件换成了toggle事件,当鼠标单击绿色的标题时,下面的内容就会显示出来;当鼠标再次单击绿色的标题时...我们给按钮绑定了鼠标单击事件,在该事件中主要实现动态生成行和单元格并添加到表中,同时给所有的行绑定了鼠标单击事件,用来实现背景色的改变。...添加过两个商品后,表格中一共有3行数据,第1行是原本存在的,后两行是动态创建并添加到表格上的。现在单击表格中的行,我们会发现只有第1行的背景色可以改变,后两行的背景色没有改变。

12910
  • Angular 显示英雄列表

    当依次遍历这个列表时,hero 会为每个迭代保存当前的英雄对象。 不要忘了 ngFor 前面的星号(*),它是该语法中的关键部分。 浏览器刷新之后,英雄列表出现了。...点击一个英雄,它的详情就出现了。 这个应用看起来又再次工作正常显示了。 英雄显示在列表中,当你单击英雄的名字的时候,有关你单击英雄的详细信息就显示在页面的底部了。...为什么这样是正常的 当 selectedHero 为 undefined 时,ngIf 从 DOM 中移除了英雄详情。因此也就不用担心 selectedHero 的绑定了。...当用户选择一个英雄时,selectedHero 也就有了值,并且 ngIf 把英雄的详情放回到 DOM 中。...所以你只要在用户点击一个  时把 .selected 类应用到该元素上就可以了。 Angular 的 CSS 类绑定机制让根据条件添加或移除一个 CSS 类变得很容易。

    4.4K70

    Angular 显示英雄列表

    当依次遍历这个列表时,hero 会为每个迭代保存当前的英雄对象。 不要忘了 ngFor 前面的星号(*),它是该语法中的关键部分。 浏览器刷新之后,英雄列表出现了。...点击一个英雄,它的详情就出现了。 这个应用看起来又再次工作正常显示了。 英雄显示在列表中,当你单击英雄的名字的时候,有关你单击英雄的详细信息就显示在页面的底部了。...为什么这样是正常的 当 selectedHero 为 undefined 时,ngIf 从 DOM 中移除了英雄详情。因此也就不用担心 selectedHero 的绑定了。...当用户选择一个英雄时,selectedHero 也就有了值,并且 ngIf 把英雄的详情放回到 DOM 中。...所选英雄的颜色来自于你前面添加的样式中的 CSS 类 .selected。 所以你只要在用户点击一个  时把 .selected 类应用到该元素上就可以了。

    4K30

    优化 React APP 的 10 种方法

    它不应在第二个输入中再次运行,因为它与前一个输入相同,它应将结果存储在某个位置,然后在不运行函数(expFunc)的情况下将其返回。 在这里,我们将使用useMemo挂钩为我们优化expFunc。...> ) } } 此应用程序将计算包含1M个元素的数组的总和,现在,如果我们在主线程中执行了此操作,则主线程将一直挂起,直到遍历1M个元素并计算了它们的总和。...当webpack遍历我们的代码进行编译和捆绑时,当它到达React.lazy()和时会创建一个单独的捆绑import()。...当要重新渲染组件时,React会将其先前的数据(属性和上下文)与当前数据(属性和上下文)进行比较,如果它们相同,则不会进行重新渲染,但是如果存在差异,则该组件并重新渲染其子级。...再次运行该应用程序,输入2并连续单击该Click Me按钮,您将看到渲染一次,不再进行:) 看到,我们使用了shouldComponentUpdate方法来设置何时重新渲染组件,从而有效地提高了组件的性能

    33.9K20

    JQuery最全常用方法指南

    $(”元素名称”).text(); 获得该元素的文本 $(”元素名称”).text(value); 设置该元素的文本值为value $(”元素名称”).toggleClass(class) 当元素存在参数中的样式的时候取消...,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。...andSelf() 将前一个匹配的元素集合添加到当前的集合中 取得所有div元素和其中的p元素,添加border类属性。...$(”div: contains(’John’)”) 匹配含有指定文本的所有元素 $(”td: empty”) 匹配所有空元素(只含有文本的元素不算空元素) $(”div: has§”) 从原元素集合中再次匹配所有至少含有一个...与$(fn)等价 (3)toggle(evenFn, oddFn): 每次点击时切换要调用的函数。如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。

    11K31

    如何使用AngularJS和PHP为任何位置生成短而独特的数字地址

    将其复制并存储在可以轻松检索的位置,因为稍后您需要将其添加到项目代码中。 获取API密钥后,您可以通过创建MySQL数据库来开始构建应用程序的基础。...在浏览器中再次访问该应用程序,然后在第一个字段中输入状态名称。将文本光标移动到下一个字段时,不会显示纬度和经度标签,地图上显示的位置也不会更改以反映您输入的信息。让我们启用这些行为。...一个blur在一个给定的页面元素失去焦点时发生的事件。将以下突出显示的行添加到form块的input标记中。...如果您再次在浏览器中访问该应用程序,则不会看到其外观或行为的任何新变化。同样,如果您要输入地址并单击“ 生成”按钮,则应用程序仍然不会生成或显示地图代码。...每当用户单击Generate按钮时,index.php文件中的代码都会提交表单并调用该processForm函数,该函数在以下createDigitalAddressApp.js位置定义: . . .

    13.2K20

    AngularDart4.0 英雄之旅-教程-07路由 顶

    RouterLink指令告诉路由在用户点击链接时的位置。 您使用链接参数列表定义了一个路由指令, 这个列表在我们的小样本中只有一个元素,引用的路由名称。...div> div> * ngFor再次用于遍历英雄列表并显示他们的名字。...之前,您从HeroesComponent的提供程序列表中删除了HeroService,并将其添加到AppComponent的提供程序列表中。...刷新浏览器并开始点击。 用户可以在应用程序周围进行导航,从仪表板到英雄详细信息,然后返回,从英雄列表到英雄详细信息,再次回到英雄。 你已经达到推动这个页面的所有导航要求。...你所要做的就是定义它的风格。 应用程序全局样式 将样式添加到组件时,可以将组件需要的所有内容(HTML,CSS和代码)一起放在一个方便的位置。 把它打包起来很容易,在其他地方重新使用组件。

    17.6K30

    jQuery 事件

    什么是事件 页面对不同访问者的响应叫做事件。 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。...该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。 提示:如需移除事件处理程序,请使用Off()方法。...div> div> 移除事件 off() 方法通常用于移除通过 on() 方法添加的事件处理程序。...该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。 注意:如需移除指定的事件处理程序,当事件处理程序被添加时,选择器字符串必须匹配 on() 方法传递的参数。...() event.namespace 返回当事件被触发时指定的命名空间 event.pageX 返回相对于文档左边缘的鼠标位置 event.pageY 返回相对于文档上边缘的鼠标位置 event.preventDefault

    2.9K70

    AngularDart4.0 英雄之旅-教程-04明细 顶

    在此页面中,您将扩展“Tour of Heroes”应用程序,以显示英雄列表,并允许用户选择英雄并显示英雄的详细信息。 完成此页面后,该应用应该看起来像这个实例(查看源代码)。...如果您的结构不匹配,请返回该页面以弄清楚您错过了什么。 ? 如果该应用尚未运行,请启动该应用。 当您进行更改时,请通过重新加载浏览器窗口来保持运行。... ngFor的前缀(*)是此语法的关键部分。 它表示元素及其子元素构成一个主模板。...刷新浏览器,该应用程序不再失败,名称列表再次显示在浏览器中。 当没有选定的英雄时,ngIf指令从DOM中移除英雄详情HTML。 没有英雄细节元素或绑定担心。...在模板中,将以下绑定添加到标记中: [class.selected]="hero === selectedHero" 当表达式(hero === selectedHero)为true时,Angular

    3K30

    JavaScript 编程精解 中文第三版 十九、项目:像素艺术编辑器

    为了保持颜色字段显示正确的颜色,该工具必须知道它存在,并在每次选择新颜色时对其进行更新。 如果你添加了另一个让颜色可见的地方(也许鼠标光标可以显示它),你必须更新你的改变颜色的代码来保持同步。...它创建元素,每个工具带有一个选项,并设置"change"事件处理器,用于在用户选择不同的工具时更新应用状态。...当它赶上长度时,没有剩下未探测的像素,并且该函数就完成了。 最终的工具是一个颜色选择器,它允许你指定图片中的颜色,来将其用作当前的绘图颜色。...为了让浏览器真正下载图片,我们将创建一个链接元素,指向此 URL 并具有download属性。 点击这些链接后,浏览器将显示一个文件保存对话框。 我们将该链接添加到文档,模拟点击它,然后再将其删除。...alpha 分量表示不透明度 - 当它是零时像素是完全透明的,当它是 255 时,它是完全不透明的。出于我们的目的,我们可以忽略它。

    3K10

    AngularDart4.0 指南- 模板语法二 顶

    NgFor:为列表中的每个项目重复一个模板。 NgSwitch:只显示多个可能元素中的一个。 NgIf  您可以通过向该元素应用NgIf指令(称为宿主元素)来添加或移除DOM中的元素。...'none' : 'block'">Hide with stylediv> 隐藏一个元素与用NgIf去除一个元素是完全不同的。 当你隐藏一个元素时,该元素及其所有的后代仍然保留在DOM中。...当NgIf为false时,Angular从DOM中删除元素及其后代。 它摧毁了他们的组件,潜在地释放了大量的资源,从而带来了更加快速的用户体验。 展示/隐藏技术适合少数几个后代的元素。...NgSwitchCase和NgSwitchDefault指令是结构指令,因为它们添加或删除DOM中的元素。 NgSwitchCase在其绑定值等于交换机值时将其元素添加到DOM。...当没有选择NgSwitchCase时,NgSwitchDefault将其元素添加到DOM。 switch指令对于添加和删除组件元素特别有用。

    30K20

    Jump Start Bootstrap 第4章

    这个ul元素应该有类”dropdown-menu”。现在,我们有了一个简单的下拉菜单,在单击链接时显示菜单。我们可以在浏览器中查看它,如图所示。 ?...当你点击按钮时,你会看到一个类似于插图效果的样式;在再次单击时,它返回到原来的样式,如图所示。data-toggle=”button”实现了这个切换功能。 ?...该插件在任何DOM元素中侦听滚动,并根据元素的滚动位置在导航栏中突出显示菜单项。 基本上,它是一个双组件的插件;它由一个导航条和一个内容区域组成。内容区域划分为多个部分,每个部分都有一个惟一的ID。...添加data-dismiss使按钮在单击时关闭模式对话框。 对于本体,我们需要一个包含类modal-body的div>元素。您可以将几乎任何内容放到该元素中。...元素,可以作为一个modal handle元素,可以包含一个包含链接的属性href。Bootstrap模式对话框有一个选项,当单击该句柄时,将该链接加载到它的modal-body元素中。

    28.4K40

    ArcGIS Pro中2D和3D模式下绘制地图

    您现在可以将地标添加到地图。 4.单击圣马可广场的中心来添加点。 新的点会自动选中,并使用蓝色突出显示。 提示: 如果您不喜欢点的放置位置,可以将其撤销。...但是,如果该像素值为 1.6 米,则表达式为假,将为该像素指定值 0 以表示假。 6.在栅格计算器工具中,对于输出栅格,键入 Flood_Calculation,然后单击运行。 图层随即添加到地图。...9.在内容窗格中,右键单击 Structures_Copy 图层并单击移除。选中 Structures 图层以将其打开。 10.在地图选项卡的选择组中单击按位置选择按钮。...如果选择此设置,则在使用“选择”工具时,您单击的要素将被取消选中,而其他要素将保持选中状态。 提示: 还可以通过单击要素时按住 Ctrl 键来从当前选择内容中移除要素。 16.单击确定。...提示: 如果取消选中了错误的要素,可以通过返回至“选择选项”并选择选择合并模式下的添加到当前选择内容来重新将其选中。 19.找到圣马可广场北端的不重叠要素,单击将其取消选中。

    20210

    jQuery (二)

    使用jQuery处理事件 事件处理 一个栗子,单击p时背景变成灰色 由于es6的箭头函数不支持this的绑定,所以无法使用箭头函数,只能使用匿名函数 html 如果没有参数,将会直接设置display的值为none,如果有任意一个参数,将会设置高度和不透明度,将其变为0,并且display也将会变为none,确保不会影响页面的布局。...中默认的队列名为fx,这是没有指定队列名时默认使用的队列。...// 选取div.note 将选中的元素集用做上下文 即交并补 $('div').find('p'); // 在div中查找p元素 $('#header, #footer').find('p');..., ''); // 遍历jQuery对象中的每一个元素 this.each(function() { // 将参数的字符串作为文本添加到每一个元素的后面,并添加一个br jQuery

    9.3K30

    杨老师课堂之Jquery的筛选,事件,效果,Ajax,javascript跨域)

    •end 结束选取自己的位置,如果不指定,则就是本身的结尾 1.2 查找 children([expr]),取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。...事件冒泡可能会引起预料之外的效果,上例中,本来只想触发元素 的click事件,然而 元素和元素的click事件也同时被触 发了.因此有必要对事件的作用范围进行限制.当单击元素时,只 触发元素的click...事件,而不触发 和元素上的 click事件.当单击 元素时,只触发 元素上的click事件, 而不触发元素上的click事件....; event.stopPropagation();//停止冒泡事件 }) 当单击span元素时,只会触发span元素上的click事件,而不会触发 div元素和body元素的click事件....该方法的作用是获取到光标相对于页面的x坐标和y坐标.如果没有使用jquery时,那么IE浏览器中 是使用event.pageX()和event.pageY()方法.如果页面上有滚动条,则还要加上滚动条的宽度和高

    8.3K20

    AngularDart4.0 英雄之旅-教程-08HTTP 顶

    注册HTTP服务 在应用程序可以使用BrowserClient之前,您必须将其注册为服务提供者。 您应该可以从应用程序的任何位置访问BrowserClient服务。...当应用程序使用模拟英雄列表时,更新直接应用于单个应用程序范围的共享列表中的英雄对象。 现在,您正在从服务器获取数据,如果您希望更改持续存在,则必须将其写回服务器。...添加删除英雄的能力 英雄视图中的每个英雄都应该有一个删除按钮。 将以下按钮元素添加到英雄组件HTML中,位于重复的元素中的英雄名称之后。...transform(switchMap(...))为通过debounce()和distinct()创建的每个搜索项调用搜索服务。 它取消并放弃以前的搜索,只返回最新的搜索服务流元素。...从hero_search_component.dart导入HeroSearchComponent,并将其添加到directives 列表中。

    11K30

    如何在 React 中点击显示或隐藏另一个组件?

    使用 React 状态管理控制组件可见性React 中的状态是指组件私有的数据,它决定了组件在呈现时的外观和行为。当状态更改时,组件会重新呈现,以反映这些变化。...然后,我们在组件的返回值中渲染一个按钮和一个条件渲染的 div 元素。当用户单击按钮时,onClick 事件处理函数会调用 setIsVisible 函数,并将 !...使用事件处理机制响应用户交互React 组件可以用 onClick 事件处理函数来响应用户的单击事件。当用户单击按钮时,onClick 事件处理函数被触发,并执行一些逻辑代码。...然后,我们编写了一个名为 handleClickOutside 的事件处理函数,它将检查用户单击的元素是否在菜单之外。如果用户单击的元素不在菜单中,则将可见性设置为 false,菜单将被隐藏。...如果用户单击的元素不在模态对话框中,则将可见性设置为 false,模态对话框将被隐藏。否则,模态对话框保持可见。我们还添加了一个关闭按钮,用于关闭模态对话框。

    5.1K10

    实战!半小时写一个脑力小游戏

    HTML 初始化页面模版并链接 css文件 js文件. ? 这个游戏有 12 张卡片。 每张卡片中都包含一个名为 .memory-card的容器 div,它包含两个img元素。...把 front-faceand back-face的position属性都设置为 absolute,这样就可以从原始位置移除元素,并使它们堆叠在一起。 这时页面模版看上去应该是这样: ?...每次元素被点击时都会触发 :active伪类,它引发一个 0.2秒的过渡: ? 翻转卡片 要在单击时翻转卡片,需要把一个 flip类添加到元素。...每当卡片被点击时,都会触发 flipCard函数,其中 this代表被单击的卡片。 该函数访问元素的 classList并切换到 flip类: ?...如果匹配的话,则调用 disableCards()并分离两个卡上的事件侦听器,以防止再次翻转。

    1.7K20
    领券