Javascript.RU

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

Замена и повторный поиск по id
Добрый день
В js новичок

На странице есть select с различными значениями, справа от select input с Id
Когда в select выбираю дату то в инпут поставляется(пробовал так же и удалять и рисовать заново) Id по которому должен срабатывать выпадающий календарь календарь работает нормально т.е.есди изначально у инпута стоит этот id при загрузке страницы то при нажатии на инпут календарь выпадает
Если у инпута удалить I'd средствами js то при нажатии на инпут календарь все равно работает

Пробовал заново перерисовывать элемент - не срабатывает
Проьовал удалять файл со скриптом календаря со страницы - календарь как работал при нажатии так и работает
Замену I'd тоже пробовал - не помогает

Как я понимаю нужно заставить обойти заново страницу
Подскажите как это сделать или в чем моя ошибка?
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2016, 02:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

danon_13,
в чём проблема?
Ответить с цитированием
  #3 (permalink)  
Старый 22.12.2016, 10:57
Новичок на форуме
Отправить личное сообщение для danon_13 Посмотреть профиль Найти все сообщения от danon_13
 
Регистрация: 22.12.2016
Сообщений: 6

Сообщение от рони Посмотреть сообщение
danon_13,
в чём проблема?
Проблема в том, что при вставке элементу нового идентификатора и удалении старого - событие клик как срабатывало по старому ID так и срабатывает
в случае перерисовки этого элемента т.к. полного удаления инпута и добавлении нового но уже с другим ID этот новый ID не срабатывает
т.е. даже обычный алерт не выводится
Ответить с цитированием
  #4 (permalink)  
Старый 22.12.2016, 11:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

danon_13,
не осилил вашего описания
Ответить с цитированием
  #5 (permalink)  
Старый 22.12.2016, 13:30
Новичок на форуме
Отправить личное сообщение для danon_13 Посмотреть профиль Найти все сообщения от danon_13
 
Регистрация: 22.12.2016
Сообщений: 6

Сообщение от рони Посмотреть сообщение
danon_13,
не осилил вашего описания
http://site.pavlyuchenko.pro/cal.php
при нажатии на поле выдаст календарь (фаерфокс или хром)
далее поменяйте селекс дата отчета на что нибудь другое (выполнится скрипт http://site.pavlyuchenko.pro/assets/jq.js) и заменит инпут
далее снова выберите дата отчета - вставится тот же инпут который был ранее, но при нажатии на него календарь не выпадает, хотя ID снова указан тот что и был
Ответить с цитированием
  #6 (permalink)  
Старый 22.12.2016, 14:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

danon_13,
нормальный способ: создали новый элемент, затем проинициализировали, при удалении разрушили виджет и затем удалили элемент.

но можно сохранить с помощью detach удалённый элемент а потом вернуть.

$(document).ready(function() {
    var datepicker;
    $("#form").change(function() {
        if (this.value == "data_otch") $(".for").html("").append(datepicker);
        else {
            datepicker = $("#datepicker-default").detach();
            $(".for").html('<input name="filtr" value="" class="form-control input-sm" id="" type="text">')
        }
    });
    $(".datepicker-default").click(function() {
        alert("123")
    })
});
Ответить с цитированием
  #7 (permalink)  
Старый 22.12.2016, 15:28
Новичок на форуме
Отправить личное сообщение для danon_13 Посмотреть профиль Найти все сообщения от danon_13
 
Регистрация: 22.12.2016
Сообщений: 6

Сообщение от рони Посмотреть сообщение
danon_13,
нормальный способ: создали новый элемент, затем проинициализировали, при удалении разрушили виджет и затем удалили элемент.

но можно сохранить с помощью detach удалённый элемент а потом вернуть.

$(document).ready(function() {
    var datepicker;
    $("#form").change(function() {
        if (this.value == "data_otch") $(".for").html("").append(datepicker);
        else {
            datepicker = $("#datepicker-default").detach();
            $(".for").html('<input name="filtr" value="" class="form-control input-sm" id="" type="text">')
        }
    });
    $(".datepicker-default").click(function() {
        alert("123")
    })
});
спасибо, буду пробовать
Ответить с цитированием
  #8 (permalink)  
Старый 22.12.2016, 16:46
Новичок на форуме
Отправить личное сообщение для danon_13 Посмотреть профиль Найти все сообщения от danon_13
 
Регистрация: 22.12.2016
Сообщений: 6

если выбрать по одному элементу из списка, а затем вернуться к первому то инпут пропадает
поэтому таким образом исправил решение

$(document).ready(function() {
    var datepicker;
	var p;
    $("#form").change(function() {
		if (this.value == "data_otch") {
			$(".for").html("").append(datepicker);
			p = 0;
		}
        else if(p == 1){
			p = 1;
        }
		else{
			p = 1;
			datepicker = $("#datepicker-default").detach();
            $(".for").html('<input name="filtr" value="" class="form-control input-sm" id="" type="text">');
			
		}
    });
});
Ответить с цитированием
  #9 (permalink)  
Старый 22.12.2016, 17:01
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

danon_13,
Загадочное действие
Код:
if(p == 1){
            p = 1;
        }
        else{
Может, достаточно
if(p != 1){
?
Ответить с цитированием
  #10 (permalink)  
Старый 22.12.2016, 17:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

danon_13,
$(document).ready(function() {
  var datepicker;
  $("#form").change(function(){
    if (this.value == 'data_otch'){
      $(".for").html('')
      .append(datepicker);
    }
    else if($("#datepicker-default").length){
      datepicker= $("#datepicker-default").detach();
      $(".for").html('<input name="filtr" value="" class="form-control input-sm" id="" type="text">');
    }
  });
  });
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и замена слов по списку EvgenStor Общие вопросы Javascript 40 26.09.2017 03:29
Поиск и замена одной строки в html на другую "на лету" kos0760 Общие вопросы Javascript 1 08.07.2015 18:38
Поиск и замена текста в переменной nikolayseo jQuery 1 03.12.2012 22:39
Поиск и замена стиля одинакового сообщения fAmOus Элементы интерфейса 8 29.07.2012 01:54
Поиск и замена в текстовом поле Roman Koff Events/DOM/Window 12 23.04.2010 23:35