【问题标题】:Jquery double click event after appending element to another element将元素附加到另一个元素后的Jquery双击事件
【发布时间】:2017-03-18 02:01:16
【问题描述】:

我正在使用敏捷工具包,这是一个从 PHP 生成 javascript 代码的框架。我有一个 div 元素(我称之为“顶级元素”),其中包含一些其他 div 元素,一些按钮。 我想将“顶级元素”移动到另一个元素,以更改它的父元素。

我尝试了类似的方法:

$('#top-element').appendTo($('#new-parent'));

但问题是“顶级元素”有一些具有点击事件的子元素,一些按钮。在我将“顶部元素”附加到新元素后(更改其父元素后),点击事件被触发两次。

我尝试克隆元素并将克隆的元素附加到新的父元素:

var cloned_top_element = $('#top-element').clone(true);
cloned_top_element.appendTo($('#new-parent'));

我遇到了同样的问题,“top-element”子元素的点击事件被调用了两次。

防止双击的方法是使用:

unbind('click') or off('click')

我尝试了类似的方法:

$('#new-parent').find('.children-class').unbind('dblclick').unbind('click');

但还是没有结果。

子按钮的绑定是这样的:

$('.children-class').bind('click',function(ev){ ev.preventDefault();ev.stopPropagation(); other stuff });

绑定函数只出现一次。 js代码中没有重复。

有什么想法吗?期待感谢。

【问题讨论】:

  • 一开始你是如何绑定点击事件的?
  • 你能在 jsfiddle 中复制这个错误吗?
  • 不,因为我有一个框架,还有很多自定义代码。
  • 能否至少提供一下html
  • 不,因为它隐含了很多代码

标签: javascript jquery append clone agiletoolkit


【解决方案1】:

删除clone函数.clone();中的true这不会复制事件处理程序

【讨论】:

  • 我也试过这个。点击事件还有两个触发器。
  • 不,因为我有一个框架并且有很多自定义代码。关于点击事件的js是由框架生成的。但是是有效的js代码。
  • 它叫:敏捷工具包
  • 这就是我接受您的回答的原因:这是一个特定于框架的问题。最后,clone() 后跟初始元素隐藏并将克隆元素附加到新父项解决了这个问题。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
  • 1970-01-01
  • 1970-01-01
  • 2015-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多