2016-11-04 95 views
0

我正在使用敏捷工具包,一個從PHP生成JavaScript代碼的框架。我有一個div元素(我稱之爲「top-element」),它包含一些其他的div元素,一些按鈕。 我想將「頂級元素」移動到另一個元素,以更改它的父級。將元素附加到另一個元素後的Jquery雙擊事件

我想是這樣的:

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

但問題是,「頂級元素」有一些兒童有點擊的事件,一些按鈕。在將「頂層元素」追加到新元素(在更改它的父元素之後)之後,點擊事件被觸發兩次。

我試圖克隆元素和克隆的元素添加到新的父:

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

我得到了同樣的問題,在「頂級元素」兒童click事件被稱爲兩次。

防止雙擊的方法是使用:

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代碼中沒有重複。

任何想法?預計感謝。

+0

你是如何在第一時間結合的Click事件? –

+0

你能在jsfiddle中複製這個錯誤嗎? – madalinivascu

+0

不,因爲我有一個框架,並有很多自定義代碼。 – Pascut

回答

0

clone功能.clone();這取出true不會複製事件處理程序

+0

我也試過這個。點擊事件還有兩個觸發器。 – Pascut

+0

你能在jsfiddle中複製這個錯誤嗎? – madalinivascu

+0

不,因爲我有一個框架,並且有很多自定義代碼。關於點擊事件的js是由框架生成的。但是是有效的js代碼。 – Pascut

相關問題