Проблема Jquery ajax

#jquery #ajax #live

#jquery #ajax #ЖИВЫЕ КОНЦЕРТЫ

Вопрос:

У меня есть интерактивная карта страны, которая загружена в готовый документ.

     $(document).ready(function bg() {
        $.ajaxSetup ({cache: false,timeout: 5000});     
        $("#map").load("/maps/country.php",function() {
    $('.map').maphilight({SOME SETTINGS HERE});     
    });
});
  

Когда я нажимаю на city, это запускает функцию ajax, которая загружает файл city в #map div, повторно привязывая набор javascript для флажков maphover и т.д…

 $("#map").load("/maps/cityc_maps.php", function() {

        //JAVASCRIPT NEEDED HERE!

 });
  

Проблема, с которой я сталкиваюсь, заключается в том, что когда я загружаю карту города в div (с помощью ajax), я хотел бы, чтобы мой скрипт повторно привязал скрипты (и выделил эту часть карты).

 $("#map").load("/maps/cityc_maps.php", function() {

        //JAVASCRIPT NEEDED HERE!

 $("#CountryLink").load("/maps/country.php",function() {
  $('.map').maphilight({SOME SETTINGS HERE});
    //AND HERE WHEN USER CLICK CITY MAP when file load
 });

 });
  

Это очень запутанно, но я надеюсь, что кто-нибудь меня поймет. Я думаю, что решением является перезагрузка страницы, но я надеюсь, что есть способ сделать это с помощью ajax.

Комментарии:

1. Я действительно не понимаю, в чем ваша проблема. Почему бы вам не создать дополнительную ссылку при загрузке страницы, которая загружает карту страны? Также может быть, что вашу проблему можно решить, просто используя именованные функции вместо анонимных.

2. Не зная, какую систему вы используете, мы не сможем вам реально помочь. Это очень практичный вопрос, и без наличия идентичных обстоятельств я сильно сомневаюсь, что вы получите решение. Если вам нужно теоретическое решение при загрузке каждой страны, сохраните страну, чтобы пользователь мог вернуться к ней.

Ответ №1:

Если вы хотите привязать обработчики событий к элементам, вставленным через AJAX, я думаю, вам следует использовать live : http://api.jquery.com/live /

Таким образом, вы один раз привязываете обработчики событий к своему JavaScript-коду, а jQuery заботится о наблюдении за новыми привязываемыми элементами.