Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.10.2017, 16:34
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Смена/переключение id у элемента
Здравствуйте!
Подскажите как правильно решить такую задачку.
Имею элемент с id="da"
<div id="da">Содержимое</div>

На jQuery скрипт который меняет у элемента id при клике на него:
$('#da').click(function() {
	$('#da').removeAttr('id').attr('id', 'net');
});
$('#net').click(function() {
	$('#net').removeAttr('id').attr('id', 'da');
});

Получается как переключатель - меняет туда сюда id.
Но если при первом клике срабатывает правильно и id у элемента меняется с da на net, то при втором клике по элементу уже ничего не происходит.
Ответить с цитированием
  #2 (permalink)  
Старый 30.10.2017, 17:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от MC-XOBAHCK
$('#net').click(function() {
Такого элемента нет, и установление обработчика в никуда. Делегируйте обработку ближайшему родителю существующему на странице.

И странная однако затея - менять ID.
Ответить с цитированием
  #3 (permalink)  
Старый 30.10.2017, 18:03
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

А при первом клике нельзя вместе с новым id установить для него обработчик? Есть ли такая возможность в jQuery или JS?

Я от странностей не отказываюсь, у меня только начинает понемногу что то получаться в коде и знаний у меня очень мало, поэтому я задаю на форуме вопрос.
ID менять - у меня там внутри ещё несколько div и в некоторых по клику я меняю часть контента (туда-сюда).
Альтернативный метод знаю - добавить в HTML новый div и менять у них .css('display', 'none') - .css('display', 'block')
Ответить с цитированием
  #4 (permalink)  
Старый 30.10.2017, 18:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от MC-XOBAHCK
ID менять - у меня там внутри ещё несколько div и в некоторых по клику я меняю часть контента (туда-сюда).
А разве для этого требуется менять имя атрибута?

Сообщение от MC-XOBAHCK
А при первом клике нельзя вместе с новым id установить для него обработчик?
Можно, но все таки лучше не стоит таким извращением заниматься - не надо ничего менять. Если сюда заглянет рони, он вам обязательно посоветует найти решение по волшебному слову - "открывашка". )
Ответить с цитированием
  #5 (permalink)  
Старый 30.10.2017, 18:44
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Сообщение от laimas Посмотреть сообщение
Можно, но все таки лучше не стоит таким извращением заниматься
А можете показать как правильно ставить обработчик, а то я прежде чем тему создать пробовал - у меня не получилось, а в топике застеснялся упоминать слово обработчик.
Я применять не буду, просто хотел бы знать как правильно обработчик устанавливать.
Ответить с цитированием
  #6 (permalink)  
Старый 30.10.2017, 19:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Делегировать:

$('ближайший родитель гарантированно присутствующий на странице').on('событие или события через пробел', 'элемент или элементы через запятую, делегирующие обработку события', fucntion() { ...})

Но у вас то элементов не будет вообще.
Ответить с цитированием
  #7 (permalink)  
Старый 30.10.2017, 20:50
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Спасибо! - Сейчас попробую применить.
Я для своей задачки другое решение сделал, а это хочу понять как работает, для меня это лишним не будет.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить класс родительского элемента STyLe Общие вопросы Javascript 1 29.05.2014 20:21
как узнать размер в пикселях элемента созданного элемента span Faab Общие вопросы Javascript 2 09.11.2013 16:46
Замена DOM элемента другим элементом MaxXxaM Events/DOM/Window 5 04.05.2013 01:24
Как то можно узнать ID HTML элемента вызвавшего JavaScript функцию? Opusel Events/DOM/Window 1 18.12.2011 18:36
Браузер не успевает определить высоту вновь созданного через XMLHttpRequest элемента Lockpickup AJAX и COMET 17 25.04.2011 17:58