Странные ошибки в работе jquery
В общем работала jquery на сайте отлично, но с некоторых пор начались глюки, например при клике на ссылку с параметром onclick="insertPS('1','2')" (функция insertPS() написана в $(document).ready(function(){ ) выдает ошибку Undefined variable insertPS(), но ведь раньше все работало отлично..
в чем может быть проблема? |
document.ready создаёт замыкание, ваша функция доступна только внутри него.
Чтобы этого избежать, используйте FD (уже без document.ready): a(); // Всё ОК, ошибок нет function a() {alert()}; Или вынесите функцию в глобальную область видимости (тут можно пользоваться document.ready): window.insertPS = function () {…} |
а самому проверить? Вызывается ли $(document).ready(function(){...})...
|
http://ru.wikipedia.org/wiki/Зам...вани е)
$(document).ready не создает замыкание, просто нельзя получить доступ к переменным/функциям внутри некоторой функции, если последняя их сама оттуда не вынесет. И кстати, да, зачем определять функции в $(document).ready? |
И еще один вариант в духе unobtrusive JS. Убрать
onclick="insertPS('1','2')" из разметки и написать:$(document).ready(function(){ function insertPS(a, b) {...} $('a ...').click(function() { return insertPS('1', '2'); }); }Бонус: можно в случае чего переделать click() на live(). |
при неосторожном использовании это может стать антибонусом. И тут нету ничего unobtrusive, потому что либо оно уже unobtrusive (вряд ли), либо это изменение никак не повлияло. А лучше тем, что html отделяется от js, можно даже в отдельный файл вынести
|
Цитата:
|
Цитата:
|
|
Часовой пояс GMT +3, время: 08:03. |