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


Автор: Vovan222 12.8.2011, 00:19
Всем привет у меня есть следующая форма:
Код

<form method="POST" action="">
    <fieldset>
          <legend id="searchLabel">Поиск:</legend>
               <table>
                   <tbody>
                         <tr>
                              <td width="200px" align="left"></td>
                              <td width="400px" align="left" colspan="2">
                        </td>
                  </tbody>
              </table>
     </fieldset>
</form>


Мне нужно отследить клик на элементе legend#searchLabel. Делаю так:
Код

$('#searchLabel').click(function(e){
    e.stopPropagation();
    toggleSeachPanel($('#shortcuts'));
});
 

Все работает прекрасно, однако из-за "всплытия событий", этот клик срабатывает для всех потомков элемента legend. Т.е если кликнуть на ячейку td, то функция toogleSearchPanel будет вызвана, поскольку событие по цепочки вверх передается элементу label. Мне это не нужно. Можно ли как-то это обойти. Помогите пожалуйста. 

Автор: нуп 12.8.2011, 08:44
А где вы видите потомков label?  smile Проверил в ff/chrome/opera/ie7 клик срабатывал только если кликнуть на "Поиск:"

Автор: blah 13.8.2011, 19:59
У вас же все есть, просто сделать по аналогии с легендой:
Код

$('#searchLabel td').click(function(e){
    e.stopPropagation();
});

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