Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.12.2017, 16:43
Интересующийся
Отправить личное сообщение для alixan23 Посмотреть профиль Найти все сообщения от alixan23
 
Регистрация: 26.10.2017
Сообщений: 16

Проблема c clone
Добрый день уважаемые форумчане.

После использования функции clone (у jQuery) - дом дерево не видит новые элементы, которые были клонированы. Такое ощущение, что они не входят в общий scope.

Есть ли, какой-нибудь способ сделать, что-то вроде reInitialize всего дом дерева заново, чтобы новые клонированные элементы были бы включены в дом дерево?

Есть у кого какие мысли по этому поводу? Заранее благодарю всех за помощь и участие.
Ответить с цитированием
  #2 (permalink)  
Старый 20.12.2017, 16:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от alixan23
Есть у кого какие мысли по этому поводу?
Где тестовый пример?
Ответить с цитированием
  #3 (permalink)  
Старый 20.12.2017, 16:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от alixan23
После использования функции clone (у jQuery) - дом дерево не видит новые элементы, которые были клонированы.
Речь об обработчиках событий? Все верно, их ведь не было при установке обработчиков. Делегирование или назначать обработчики после добавления элементов на страницу.
Ответить с цитированием
  #4 (permalink)  
Старый 20.12.2017, 16:50
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,737

alixan23, jq.clone возвращает клон элемента, но не размещает его в DOM.
Ответить с цитированием
  #5 (permalink)  
Старый 20.12.2017, 16:50
Интересующийся
Отправить личное сообщение для alixan23 Посмотреть профиль Найти все сообщения от alixan23
 
Регистрация: 26.10.2017
Сообщений: 16

ksa, сейчас будет.

Последний раз редактировалось alixan23, 20.12.2017 в 16:54.
Ответить с цитированием
  #6 (permalink)  
Старый 20.12.2017, 16:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

alixan23,
откройте для себя делегирование, поставьте клик на то что есть всегда! а не на те элементы которых нет или которые вы хотите заменить .
Ответить с цитированием
  #7 (permalink)  
Старый 20.12.2017, 16:52
Интересующийся
Отправить личное сообщение для alixan23 Посмотреть профиль Найти все сообщения от alixan23
 
Регистрация: 26.10.2017
Сообщений: 16

laimas, и что вы посоветуете делать в таком случае?

Мне необходимо взаимодейстовать с новыми элементами. В каком направление копат?
Ответить с цитированием
  #8 (permalink)  
Старый 20.12.2017, 16:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

alixan23,
сюда копайте On
Ответить с цитированием
  #9 (permalink)  
Старый 20.12.2017, 17:27
Интересующийся
Отправить личное сообщение для alixan23 Посмотреть профиль Найти все сообщения от alixan23
 
Регистрация: 26.10.2017
Сообщений: 16

ksa, вот набросанный примерчик

$( function()
      {

          $( "#sortable" ).sortable({
              revert: true
          });


          $( "#draggable3" ).draggable({
              connectToSortable: "#sortable",
              helper: "clone",
              revert: "invalid"
          });

          $( "ul, li" ).disableSelection();




          $(".add_field_button").click(function(e)
          {
              e.preventDefault();
              $(".input_fields_wrap").append('<div>' +
                  '                   key:   <input type="text" name="key[]"/>' +
                  '                   value: <input type="text" name="field[]"/>' +
                  '                   <a href="#" class="remove_field">Remove</a>' +
                  '               </div>');

          });

          $(".input_fields_wrap").on("click",".remove_field", function(e)
          {
              e.preventDefault();
              $(this).parent('div').remove();
              console.log("xxx: "+$(this).parent('div'));
          });

      });




<ul>
    <li id="draggable3" class="ui-state-highlight">
        <table cellpadding="2" cellspacing="2" border="0">
            <tr>
                <td colspan="2">SELECT</td>
            </tr>

            <tr>
                <td>Label:</td>
                <td><input name="label[]"></td>
            </tr>
            <tr>
                <td>Name:</td>
                <td><input name="name[]"></td>
            </tr>
            <tr>
                <td valign="top">Options:</td>
                <td>
                    <div class="input_fields_wrap">

                        key:   <input type="text" name="key[]">
                        value: <input type="text" name="field[]">
                        <button class="add_field_button" >+</button>
                    </div>


                </td>
            </tr>


        </table>
    </li>
</ul><br><br>
    <ul id="sortable">
        <li class="ui-state-default">test1</li>
        <li class="ui-state-default">test2</li>
    </ul>




Как видно из кода. Вначале элемент select можно клонировать путём Drag&Drop. После клонирования, с кнопочкой + можно увеличить количество Option.

Кнопочка "+" у клонированных элементов не работает.
Ответить с цитированием
  #10 (permalink)  
Старый 20.12.2017, 17:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от alixan23
Кнопочка "+" у клонированных элементов не работает.
Сообщение от рони
поставьте клик на то что есть всегда!
$("body").on("click",".add_field_button", function(e)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с clone() dom элемента. vitja jQuery 6 03.02.2011 13:40
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19