Функции не работают в блоке jQuery(function($){ });
Есть две функции:
function city_ajax(country_id){ data = "country_id="+country_id; $.ajax({url: 'php_city.php', type: 'get', data: data, dataType: 'json', success: function(json){ answer = json['answer']; $('#city').html(answer['listing_cities']); }, error: function(json){ $('#note').html('<h5>Что-то не так...</h5>'); } }); } function toCities(country_code){ $('#cities').html('<div id="title_city" class="vibor"><span>Пожалуйста выберите нужный вам город.</span></div><div id="city"></div>'); $('html, body').animate({scrollTop: $('#cities').offset().top}, 'slow'); city_ajax(country_code); return false; } Они прекрасно работают. Но если их заключить в блок jQuery(function($){ }); они работать прекращают. В средствах разрабодчика Chrome выдаёт ошибку "функция не определена". Может кто подсказать в чём тут дело? |
наверно одна из этих функций вызывается откуда-то "снаружи" (подозреваю, что toCities)
если да, то вместо function toCities(country_code) напиши window.toCities = function(country_code) |
php-скрипт формирует списки для вставки в блок на основе ajax-запроса. В скрипте есть строка: $listing_countries .= "<li><a href='javascript: void(0);' onClick='toCities(".$row['id'].");'><img src='view_image/".$row['flag']."' /> ".$row['name']."</a></li>";
Может в этом дело? Сейчас попробую ваш совет. |
Вы были правы! Всё прекрасно работает!
Спасибо! А можно объяснить механику этого дела? Как говориться, люблю всё знать. |
Цитата:
window.toCities = function(country_code) явно помещает переменную в глобальное scope (которое по совместительству является объектом window). |
Благодарю! На этом, можно считать тема закрыта.
|
Часовой пояс GMT +3, время: 13:50. |