Денис Букреев: не обязательно. Можно писать условия вроде if(container.contains(childElement)) - contains как раз служит для проверки на вложенность. При клике на элемент проверяете если target(см пример выше) равен вашей оболочке то выполняете действие, иначе если target вложен в оболочку то отменяете действие
XenK: попробуйте заменить LEFT JOIN `goods` AS `gd` ON `goods`.`type_id` = 103 на LEFT JOIN `goods` `gd` ON `goods`.`type_id` = 103, я к сожалению напрочь забыл синтаксис mysql)