Javascript.RU

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

Получения ID по onclick
Помогите пожалуйста! Проблема такова:
есть массиы приходящие с сервера в виде каталога. При клике беру ID кликнутой строки и подставляю его в следующий запрос, таким образом перехожу в подкоталог. Все бы ни чего, но при переходе в еще на один уровень ниже нужно взять следующий кликнутый ID+ParentID, а наверно в памяти остается уже ненужный ID первого вызова, т.к. происходит это в Ajax.
Теперь код:
var requestUrl = 'https://api2.mysite.ru?json';
    var request = {
                 key: '0000',
                 method: 'Catalogs'
                  };
    var data = 'data=' + JSON.stringify(request);
	$.ajax({
           url: requestUrl,
          type: 'POST',
      dataType: 'json',
          data: data
          })
	  .done(function(data) {
           for (json in data) {
  
	       document.write('<li class="cat" ID="' + data[json].id + '" ParentID="' + data[json].parent_id + '" ><button class="catalog">' + data[json].name + '</button></li>')
           
	  
	    
	$(function(){
	   $(".cat").on('click',function(event) { // кликаем по списку получаем ID и ParentID
		 $("li.cat").remove();                //удаляем список
		 	
	   })})}})
// вазываем следующий ур.(эдентичный запрос. отличие в var request{params})

var requestUrl = 'https://api2.mysite.ru?json';
    var request = {
                 key: '0000',
                 method: 'PodCatalogs',
                 params: {
                       catalog_id : this.ParentID, // ? как мне четко прописать откуда я это взял(уровни отличаются только классом)
		       section_id : this.ID,          // ? как мне четко прописать откуда я это взял(уровни отличаются только классом)
                  };
    var data = 'data=' + JSON.stringify(request);
	$.ajax({
           url: requestUrl,
          type: 'POST',
      dataType: 'json',
          data: data
          })
	  .done(function(data) {
           for (json in data) {
  
	       document.write('<li class="PodCat" ID="' + data[json].id + '" ParentID="' + data[json].parent_id + '" ><button class="catalog">' + data[json].name + '</button></li>')
           
	  
	    
	$(function(){
	   $(".PodCat").on('click',function(event) { // кликаем по списку получаем ID и ParentID
		 $("li.PodCat").remove();                //удаляем список
		 	
	   })})}})

Надеюсь понятно изложена суть. Если что переспрашивайте. Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 10.02.2015, 09:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от ghostcom
document.write
попробуйте переписать код без этого и почитайте как это работает и в каких случаях можно использовать
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2015, 16:33
Аватар для ghostcom
Аспирант
Отправить личное сообщение для ghostcom Посмотреть профиль Найти все сообщения от ghostcom
 
Регистрация: 08.02.2015
Сообщений: 41

Да, я читал. Но при смене метода массив не отображается. Спасибо за ответ! А что бы вы посоветовали использовать вместо document.write, просто это мой первый скрипт.
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2015, 16:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

ghostcom,
http://learn.javascript.ru/multi-insert
и в jquery с десяток методов от .html() до .append()

Последний раз редактировалось рони, 11.02.2015 в 19:46.
Ответить с цитированием
  #5 (permalink)  
Старый 10.02.2015, 16:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

ghostcom,
var data = 'data=' + JSON.stringify(request); это лишнее
Ответить с цитированием
  #6 (permalink)  
Старый 10.02.2015, 17:02
Аватар для ghostcom
Аспирант
Отправить личное сообщение для ghostcom Посмотреть профиль Найти все сообщения от ghostcom
 
Регистрация: 08.02.2015
Сообщений: 41

Сообщение от рони Посмотреть сообщение
ghostcom,
var data = 'data=' + JSON.stringify(request); это лишнее
Хм,,, а без нее не хочит работать
Ответить с цитированием
  #7 (permalink)  
Старый 10.02.2015, 17:04
Аватар для ghostcom
Аспирант
Отправить личное сообщение для ghostcom Посмотреть профиль Найти все сообщения от ghostcom
 
Регистрация: 08.02.2015
Сообщений: 41

//это код, который должен заменить document.write на месте
                document.write = function(s) {
                var scripts = document.getElementsByTagName('script');
                var lastScript = scripts[scripts.length - 1];
                lastScript.insertAdjacentHTML("beforebegin", s); 
                }//конец

Это позволяет запись в DOM без перезаписи страницы. Где то на сайтах нашол.
Ответить с цитированием
  #8 (permalink)  
Старый 10.02.2015, 17:08
Аватар для ghostcom
Аспирант
Отправить личное сообщение для ghostcom Посмотреть профиль Найти все сообщения от ghostcom
 
Регистрация: 08.02.2015
Сообщений: 41

Сейчас буду все заново пробовать. Попозже отпишусь.Спасибо!!!
Ответить с цитированием
  #9 (permalink)  
Старый 10.02.2015, 17:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от ghostcom
Это позволяет запись в DOM без перезаписи страницы
нафиг!!! document.write не должно быть в вашем коде совсем
Ответить с цитированием
  #10 (permalink)  
Старый 10.02.2015, 17:34
Аватар для ghostcom
Аспирант
Отправить личное сообщение для ghostcom Посмотреть профиль Найти все сообщения от ghostcom
 
Регистрация: 08.02.2015
Сообщений: 41

$("div").html('<li class="cat" ID="' + data[json].id + '" ParentID="' + data[json].parent_id + '" ><button class="catalog">' + data[json].name + '</button></li>')

Такой код выводит только последний элемент массива, подскажите как прикрутить цикл? Мне бы этот вариан как нельзя к стати) как раз нужен еще div.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверить onclick или не onclick милт Events/DOM/Window 3 23.09.2014 23:36
onclick по блоку в котором есть ссылки dr_gluk jQuery 2 17.11.2011 15:37
OnClick ячейки таблицы и ссылки в этой ячейке MasDen Javascript под браузер 2 30.06.2011 10:34
Создание события onclick? kerranswell Events/DOM/Window 31 09.05.2011 21:20
Событие onClick avtor01 Events/DOM/Window 3 03.09.2009 18:01