Почему этот JQuery live () работает, а делегат () не работает? - PullRequest
0 голосов
/ 30 ноября 2011

Код, с которым я имею дело, слишком сложен, поэтому я не могу вставить свои коды сюда.

Но ситуация, с которой я столкнулся, такова: Файл .js, включенный в два разных htmls,
В одном html delegate() работал, а в другом просто нет эффекта.
Затем я заменяю delegate() на live(), а затем в обоих html все работало нормально.

Мне просто любопытно, почему это случилось ..
Может быть, потому что я включил слишком много разных файлов js в два htmls и может вызывать конфликт?

1 Ответ

3 голосов
/ 30 ноября 2011

Вы должны помнить, что когда вы делегируете () некоторому элементу, этот элемент должен присутствовать в dom при вызове делегата.

Так что если вы позвоните

 $('#mycontainer').delegate(....

элемент с идентификатором mycontainer должен присутствовать, иначе делегат () не будет работать. Одним из обходных путей, вызывающим некоторые накладные расходы, является делегирование document или body:

 $('body').delegate()

Live () всегда работает, потому что в действительности вы делегируете телу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...