Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Определение div'а по клику (jQuery)


Автор: evilelf 15.9.2010, 16:50
Здравствуйте.
Есть вот такая структура:

Код

<div id = "valid_answer">1</div>
<div id = "valid_answer">2</div>
<div id = "valid_answer">3</div>
<div id = "invalid_answer">4</div>


Задача состоит в том, чтобы по клику на контейнер обработчик событий определял:
1). "валидный" ли див, или нет.
2). получал значение, содержащееся в контейнере (1, 2, etc...)

Как реализовать такую фичу на jQuery? Как обратиться к конктретному элементу - знаю, а вот к какому то из группы - нет. Был вариант вложенных дивов, тогда 2й вопрос отпадал, но значение дива, по которому был произведён клик, было недостижимо.

Код

<div id = "valid_answer">
   <div>1</div>
   <div>2</div>
</div>
<div id = "invalid_answer">4</div>


Вероятно, стоит использовать функцию each, но я никак немогу приспособить её под свои нужды.

P.S. Я умышленно оставил одинаковые ID, чтобы было яснее, о чём я говорю. если понадобится - есть возможность нумеровать каждый ID (valid_answer_1, valid_answer_2).

Автор: CruorVult 15.9.2010, 17:03
Цитата(evilelf @  15.9.2010,  16:50 Найти цитируемый пост)
Задача состоит в том, чтобы по клику на контейнер обработчик событий определял:1). "валидный" ли див, или нет.

как должно определять валидность? По айди?

Автор: evilelf 15.9.2010, 17:38
Вот, набросал кое-что...

Код

<div class = "valid_answer">1</div>
<div class = "valid_answer">2</div>
<div class = "valid_answer">3</div>
<div class = "invalid_answer">4</div>


Код

$(document).ready(function(){
  $('.valid_answer').click(function()
    {
        flag = 0;
        answer = jQuery(this).text();
     });
  $('.invalid_answer').click(function()
     {
        flag = 1;
     });
});

Автор: ksnk 15.9.2010, 17:43
Цитата(CruorVult @  15.9.2010,  17:03 Найти цитируемый пост)
как должно определять валидность? По айди? 

Видимо, по префиксу ID  smile 

правильно ли я понял, что в вопросе будет сразу указано - какой вопрос на самом деле правильный? Тоесть любой достаточно ушлый юзер будет в состоянии проверить html-код элемента и выбрать правильный ответ?

Код

<div id="questions">
  <div id = "valid_answer">
   <div>1</div>
   <div>2</div>
  </div>
<div id = "invalid_answer">4</div>
</div>
...
<script>
$('#questions').click(function(event){
  alert($(event.target).html()||'oops!');
})
</script>

Автор: evilelf 15.9.2010, 18:48
Пользователь вообще не будет иметь возможности увидеть ХТМЛ-код (особая уличная магия) smile

Спасибо, возьму ваш метод на заметку

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)