Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.02.2015, 03:02
Интересующийся
Отправить личное сообщение для avantyrist Посмотреть профиль Найти все сообщения от avantyrist
 
Регистрация: 05.02.2015
Сообщений: 18

Определить на какой элемент был клик
Доброго времени суток.
Опишу пример:
На странице есть два блока с одинаковым классом, но они находятся в разных контейнерах. По клику на блоки выполняется много одинаковых Действий, Но есть несколько действий которые надо выполнить по клику только на определённый блок.

Каким образом можно задать-определить условие, на какой из блоков .button был произведён клик ??


jQuery(".block1 .button, #block2 .button").live("click", function(){
       //Выполняются одинаковые действия для обоих блоков.....
jQuery.ajax({cache:false, url: main_url, dataType: "html",ifModified:true,success: function(jsondata){
       //Выполняются одинаковые действия для обоих блоков.....

      //А вот теперь надо определить на какой имено блок был произведён клик...  ???
if (#block2 .button -- Если клик был сделан на етот блок) {
      //Выполнить действия только для етого блока...
}

},
      //Выполняются одинаковые действия для обоих блоков.....
})


Прошу не ругайте сильно за Кривой скелет, старался максимально обьяснить что я пытаюсь сделать
Ответить с цитированием
  #2 (permalink)  
Старый 25.02.2015, 03:18
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

Если родители разные то как вариант проверять какой родитель
if($(this).parent().attr("class") == "block1"){
	//Делаем что то
}

Но можно не только по атрибутам
Ответить с цитированием
  #3 (permalink)  
Старый 25.02.2015, 13:01
Интересующийся
Отправить личное сообщение для avantyrist Посмотреть профиль Найти все сообщения от avantyrist
 
Регистрация: 05.02.2015
Сообщений: 18

Про такой момент я думал, но ето не то
Родители одинаковые, блоки .button вложены достаточно глубоко

.block1 .(тут много родителей у блока .button) .button
#block2 .(тут много родителей у блока .button) .button

И в вашем варианте в this будет хранится Ajax запрос (ну может я неправ, опыта мало...) , разные действия мне надо выполнить именно при удачном выполнении Ajax"a, при услови что было кликнуто на тот или иной .button

Последний раз редактировалось avantyrist, 25.02.2015 в 13:18.
Ответить с цитированием
  #4 (permalink)  
Старый 25.02.2015, 13:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от avantyrist
Родители одинаковые, блоки .button вложены достаточно глубоко
В чем тогда разница у тех блоков? Ведь ты их как-то собираешся различать?
Ответить с цитированием
  #5 (permalink)  
Старый 25.02.2015, 14:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

avantyrist,
jQuery(".block1 .button, #block2 .button").live("click", function(){
     var indx = jQuery(".block1 .button, #block2 .button").index(this)
      //Выполняются одинаковые действия для обоих блоков.....
jQuery.ajax({cache:false, url: main_url, dataType: "html",ifModified:true,success: function(jsondata){
       //Выполняются одинаковые действия для обоих блоков.....

      //А вот теперь надо определить на какой имено блок был произведён клик...  ???
if (indx) { //#block2 .button -- Если клик был сделан на етот блок
      //Выполнить действия только для етого блока...
}

},
      //Выполняются одинаковые действия для обоих блоков.....
})
Ответить с цитированием
  #6 (permalink)  
Старый 25.02.2015, 16:45
Интересующийся
Отправить личное сообщение для avantyrist Посмотреть профиль Найти все сообщения от avantyrist
 
Регистрация: 05.02.2015
Сообщений: 18


Не пройдёт.
Контейнер #block2 .button на страницах загружется Ajax"oм. Есть страницы на которых только он загружается.

А есть страницы на которых присутствует .block1 .button , и дополнительно при определённых манипуляция загружается #block2 .button, Тоесть индексы всегда будут разные....
И не получится составить условие
if (indx =0) { делать чтото } else if (indx =1 ) {делать чтото другое}
Я думал что есть чтото "встроенное" для определения на какой именно контейнер был клик
Ответить с цитированием
  #7 (permalink)  
Старый 25.02.2015, 17:18
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

Ну вот this есть
Я просто не заметил что условие проверяется внутри Ajax
Можно сначала записать в переменную блок по которому кликнули а потом ajax отправлять
типа так
var click_block = $(this).attr("class");

а внутри ajax проверять уже на основе переменной
А по поводу идентификации блока вариантов немерено - добавить ему класс или айди, или по другому атрибуту проверять
Ответить с цитированием
  #8 (permalink)  
Старый 25.02.2015, 17:34
Интересующийся
Отправить личное сообщение для avantyrist Посмотреть профиль Найти все сообщения от avantyrist
 
Регистрация: 05.02.2015
Сообщений: 18

Спасибо Вам большое !!!

Буду делать с идефикаторами классов.
Просто я думал что есть некая встроенная возможность, чтобы не привязываться к классам или айдишкам.

Опыта мало, знания - через одно
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Понять по какому элементу был осуществлен клик zhurchik Events/DOM/Window 9 18.01.2015 16:09
Был ли клик в определенном элементе? Dimaz Events/DOM/Window 1 19.07.2014 19:30
Узнать к какой форме принадлежит элемент Bezlepkin Общие вопросы Javascript 2 08.03.2013 10:14
Как определить, когда дочерний элемент обрезается overflow: hidden? Sprinter Элементы интерфейса 2 10.05.2012 10:41
Как сделать что при получении фокуса элемент div был полностью виден на эране kraw Events/DOM/Window 2 06.02.2012 23:42