2016-11-08 5 views
0

Мои .popup дивы являются перетаскиваемым, благодаря этой функции Jquery:ДИВ в родительской innerHTML не слушает функции Jquery

$(function() 
{ 
    $('.popup').draggable({ 
     drag: function(event, ui) {} 
    }); 
}); 

НО ... Как только страница загружена, я добавляю .popup DIV в другой div's innerHTML. Этот div не перетаскивается. Ты знаешь почему ?

Спасибо за вашу помощь, Стефан

+0

Вы должны дать немного больше кода. – Asim

+0

Поскольку вы применяете метод '.draggable' при загрузке страницы, к элементам' .popup', которые существуют в данный момент. Это может помочь: http://stackoverflow.com/questions/15909041/jquery-how-to-use-live-on-draggable –

ответ

0

НО ... Как только страница загружена, я добавляю .popup DIV в innerHTML другого Div в. Этот div не перетаскивается. Ты знаешь почему ?

Это происходит потому, что новый div, даже если вы добавили всплывающее окно класса, не был инициализирован перетаскиваемым элементом.

Вы можете сделать это, как:

$(function() { 
 
    $('#btn').on('click', function(e) { 
 
    $('div.ui-widget-content:not(.popup)').addClass('popup').draggable({ 
 
     drag: function(event, ui) { 
 
     console.log('2 drag'); 
 
     } 
 
    }); 
 
    }) 
 
    $('.popup').draggable({ 
 
    drag: function(event, ui) { 
 
     console.log('1 drag'); 
 
    } 
 
    }); 
 
});
.ui-widget-content { width: 100px; height: 100px; padding: 0.5em; display: inline; }
<link href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" rel="stylesheet"/> 
 
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
 
    <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> 
 

 

 
<div class="ui-widget-content popup"> 
 
    Drag me around 
 
</div> 
 
<div class="ui-widget-content"> 
 
    Second Drag me around 
 
</div> 
 
<button type="button" id="btn">Add popup class to second div</button>

+0

Большое вам спасибо! Это сработало ! –

+0

Sooo ... если я использую ваш код ... второй div работает. Это перетаскивается. Но если я создаю еще один div (с ui-widget-content, другим идентификатором, чем предыдущий), второй div больше не работает. Только третья (и первая) перетаскивается. –

+0

@StefanDigital Если вы хотите сделать div перетаскиваемый код: $ ('div.ui-widget-content: not (.popup)'). AddClass ('popup'). Draggable ({Точка: как адрес div? Вам нужно адаптировать эту часть: $ ('div.ui-widget-content: not (.popup)') с помощью правильного селектора. Например, если div имеет id, равный div1, вы можете написать: $ ('# div1'). addClass ('popup'). draggable ({Надеюсь, это вам поможет. Большое спасибо. – gaetanoM

Смежные вопросы