2016-11-04 10 views
0

Я использую гибкий инструментарий, фреймворк, который генерирует javascript-код из PHP. У меня есть элемент div (я назову его «top-element»), который содержит некоторые другие элементы div, некоторые кнопки. Я хочу переместить «верхний элемент» на другой элемент, чтобы изменить его родительский.Jquery событие двойного щелчка после добавления элемента к другому элементу

Я пытался что-то вроде:

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

Но проблема в том, что «сверху-элемент» есть детско которые имеют события, нажмите несколько кнопок. После добавления «верхнего элемента» к новому элементу (после изменения его родительского элемента) события щелчка запускаются дважды.

Я пытался клонировать элемент и добавить клонированный элемент к новому родителю:

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

У меня такая же проблема, событие нажмите на «топ-элементных» детей был назван дважды.

Способ предотвращения двойной щелчок, чтобы использовать:

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

Как вы связыванием события щелчка в первую очередь? –

+0

Можете ли вы воспроизвести эту ошибку в jsfiddle? – madalinivascu

+0

Нет, потому что у меня есть фреймворк и есть много настраиваемого кода. – Pascut

ответ

0

Снимите true в clone функции .clone(); это не будет копировать обработчик событий

+0

Я тоже это пробовал. Еще два триггера для события click. – Pascut

+0

Можете ли вы воспроизвести эту ошибку в jsfiddle? – madalinivascu

+0

Нет, потому что у меня есть фреймворк и есть много настраиваемого кода. Js относительно событий щелчка генерируется каркасом. Но действительный код js. – Pascut