|
|
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Смысл в том, что после перехода фокуса с текстового поля, его значение сохраняется в БД. Так вот, если мы применяем плагин tarea к нескольким полям, то параметр callback передается лишь первому. Остальные параметры (не функции) передаются каждому элементу коллекции без проблем. В чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 16:48 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Shitbox2 Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. лишнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 17:16 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Сорри, это только здесь ошибка. Когда тестировал со скобками все впорядке было, иначе колбек бы, вообще, ни разу не передался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 17:36 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
что значит "не передется"? ругается что options.callback не функция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 17:44 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Ставлю вывод в консоль в плагине Код: javascript 1. 2. 3. И получаю {param1, param2, function(e value)} {param1, param2} {param1, param2} {param1, param2} ... и т. д. по количеству текстовых полей Если больше никакие параметры не передавать, то остальные строки просто будут пустыми ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 18:11 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
вроде всё работает Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 18:12 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Работает... http://jsfiddle.net/nJX5g/1/ Непонятно, почему вывод в лог срабатывает только один раз, хотя текстовых поля три. Но у меня все равно не работает. Возможно из-за того, что текстовые поля генерируются динамически (изначально есть только одно). Странно, что в этом случае обычные параметры передаются. Попробую дополнить пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 18:53 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Shitbox2Непонятно, почему вывод в лог срабатывает только один раз, хотя текстовых поля три.поместите этот вывод внутрь each :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 19:01 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Shitbox2что текстовые поля генерируются динамическинадеюсь, они добавляются на форму до вызова $("#myForm textarea").tarea(...) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 19:18 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Разобрался! Сейчас расскажу, почему набил шишек. У меня был такой код... Т.е. должен быть таким: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Рабочий пример: http://jsfiddle.net/nJX5g/3/ Т.е. я генерировал новое поле и сразу же привязывал к нему tarea. И конечно, когда добавил callback, забыл его прописать в месте генерации новых полей. Честно говоря, такая ситуация совсем не нравится, как сделать так, чтобы tarea работала для любых полей, в т.ч. и вновь созданных без дублирования кода в нескольких местах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 19:31 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
запомнить options в переменную и заюзать в нескольких местах не будет считаться дублированием ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 19:46 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
P.S. Пробовал window.MutationObserver и HTMLTextAreaElement.prototype, но не подошли (слишком радикальные), тут скорее что-то типа если элементы находятся в одном контейнере, то нужно использовать для них одинаковые настройки. Тогда при генерации можно просто написать .tarea() без параметров. Хотя, думаю, есть лучшие способы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 19:50 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Можно просто сохранить, да. Хотя, будет больше мусора в коде. Идеально написать наблюдатель, который будет отслеживать все вставки в dom, правда, не доходит как это реализовать, чтобы не писать после каждой вставки funcReportToObserver(). Смотрел Бэкбон и Нокаут, но пока не догнал как у них... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 19:56 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Shitbox2, а зачем писать плагин, если можно .on() использовать, что с версии JQuery 1.7 заменяет .live(), что attach an event handler for all elements which match the current selector, now and in the future ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 20:04 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
автор уже тут про такое спрашивал или у меня дежавю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 20:05 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Вот к примеру: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Жми кнопку, добавляй textarea! Событие срабатывает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 20:12 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
авторавтор уже тут про такое спрашивал или у меня дежавю? Спрашивал) и написал, что window.MutationObserver и HTMLTextAreaElement.prototype (что тогда советовали) не прижились. А тут пример перед глазами и может более простое решение придет. live, on и т.п. не подходят (или я не верно их понимаю) потому что они не обрабатывают создание элемента. Вот если бы нужно было, чтобы tarea привязывался сразу же после щелчка на контейнере с полями, тогда да... В принципе, именно в этом случае такое будет работать, но вариант не универсальный совсем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 20:18 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
skyANA, вот как раз эта ситуация. Мы слушаем body и спускаемся до textarea. Конкретно в этой ситуации это работает, но если посмотреть плагин tarea в полной версии, понятно, что такое работать не будет, т.к. просто некуда воткнуть on и т.п. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 20:29 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Эх, все что нахожу сводится к MutationObserver или реализации Наблюдателя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 20:53 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Сделаю так и пофиг, что не у всех будет работать. У правильных ребят должны быть правильные браузеры :-) Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 07:21 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
а не судьба посмотреть исходники jQuery, чтобы понять как там отслеживается появление новых элементов на странице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 12:31 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
А там отслеживается появление новых элементов на странице? О_о ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 13:15 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
skyANA а не судьба посмотреть исходники jQuery, чтобы понять как там отслеживается появление новых элементов на странице?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 13:31 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Shitbox2А там отслеживается появление новых элементов на странице? О_оНу не то, чтобы прям отслеживается :) Короче. Если Вы напишете так: Код: javascript 1. То после динамического добавления элемента <textarea> в документ, событие будет обрабатываться для него. А если так: Код: javascript 1. То событие будет обрабатываться только для тех элементов, что были в документе на момент подписки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 15:40 |
|
||
|
Почему колбек функция передается всего один раз
|
|||
|---|---|---|---|
|
#18+
Код: javascript 1. Хм... Вроде бы даже работает, хотя тоже не срабатывает первый раз и лишних колбеков навешивает, но настроить можно, думаю. Как вариант покатит! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 17:21 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=148&tid=1449006]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
75ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 367ms |

| 0 / 0 |
