2016-05-13 5 views
1

Я работаю над Drag & Drop Builder с использованием JQuery UI. То, что я хочу сделать, - это когда я наводил на любой элемент Drag-able, появляется крест и при нажатии этого креста этот элемент нужно удалить. Вот мой JQuery код для создания Drag-возможности элемента:Как сделать элемент Clickable внутри перемещаемого элемента?

var postfix = '<i class="fa fa-times"></i>'; 
$(".buildbutton").click(function() { 
    var id = this.id; 
    if (id === 'label') { 
     var elemHtml = '<div class="draggable"><label contenteditable="true" class="draggable" id="label' + labelCount + '">Text</label> ' + postfix + '</div>'; 
     $("#canvas").append(elemHtml); 
     label++; 
    } 
    $(function() { 
     $(".draggable").draggable({containment: "#canvas"}).resizable(); 
    }); 
    return false; 
}); 

JQuery код для привязки Удалить событие:

$(".draggable").on("click", "i", function(){ 
    alert("going to remove this element"); 
}); 

Но Click событие не работает как перетащить в состоянии элемент вызывая его собственное событие всякий раз, когда я нажимаю на него.

Как я могу сделать этот клик по клику?

+0

I «Конечно, есть более простой способ, но моя первая мысль:« падение »объекта (в основном, когда вы l и нажмите кнопку мыши), выясните, переместился ли он (получить предыдущие координаты, получить новые координаты). Если он не перемещен, удалите его – ntgCleaner

ответ

0

вы получили тот же вопрос, как здесь: jQuery .on('click') does not work with jQuery UI draggable

Это должно работать:

$(".draggable i").on("click", function(){ 
    alert("going to remove this element"); 
}); 

Вот рабочая jsFiddle

+0

Это не работает. Фактически ссылка на пример, добавленная вами, относится к ** Создание родительского элемента перетаскиваемого элемента кликабельным **. Но в моем случае я хочу сделать дочерний элемент кликабельным. – akifquddus

+0

@ user3130733 Хорошо. Я создал для вас [Fiddle] (https://jsfiddle.net/p8dg76LL/1/). Проверьте это. Оно работает. –

+0

Это сработало, спасибо. Пожалуйста, добавьте ответ, чтобы я мог принять его. – akifquddus

1

Это рабочий код:

$(".draggable i.remove-elem").off('click').on("click", function(){ 
     $(this).parent('.draggable').remove(); 
}); 
Смежные вопросы